<?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>BgLUG &#187; Software</title>
	<atom:link href="http://bglug.it/category/documentazione/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://bglug.it</link>
	<description>Bergamo Linux Users Group</description>
	<lastBuildDate>Sun, 04 Dec 2011 22:50:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bilancio online con Gnucash + MySQL + SSH</title>
		<link>http://bglug.it/2011/09/29/bilancio-online-con-gnucash-mysql-ssh/</link>
		<comments>http://bglug.it/2011/09/29/bilancio-online-con-gnucash-mysql-ssh/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 16:06:02 +0000</pubDate>
		<dc:creator>jimmi</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://bglug.it/?p=613</guid>
		<description><![CDATA[Gnucash è un&#8217;ottimo strumento per tenere un bilancio familiare, e dalla versione 2.4.0 supporta il collegamento ad un database SQLite, MySQL o PostgreSQL per l&#8217;archiviazione dei dati. Usando un database locale sono tuttavia legato ad un computer specifico per il suo utilizzo. Io voglio invece poter aprire una sessione di Gnucash da qualsiasi computer e [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Gnucash" href="http://www.gnucash.org/" target="_blank">Gnucash</a> è un&#8217;ottimo strumento per tenere un bilancio familiare, e dalla versione 2.4.0  supporta il collegamento ad un database SQLite, MySQL o PostgreSQL per  l&#8217;archiviazione dei dati. Usando un database locale sono tuttavia legato  ad un computer specifico per il suo utilizzo. Io voglio invece poter  aprire una sessione di Gnucash da qualsiasi computer e collegarmi sempre  ad un&#8217;unica base dati remota.</p>
<p><img title="Continua..." src="http://www.7girello.net/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /><span id="more-613"></span>Aprire  il database alla rete è decisamente poco sicuro, ma un tunnel SSH mi  offre una alternativa leggera e affidabile. Per implementare il tutto ho  usato:</p>
<p><strong>Lato server:</strong></p>
<ul>
<li><a title="MySQL" href="http://www.mysql.it/" target="_blank">MySQL</a></li>
<li><a title="OpenSSH" href="http://www.openssh.org/it/index.html" target="_blank">OpenSSH</a></li>
</ul>
<p><strong>Lato client:</strong></p>
<ul>
<li><a title="OpenSSH" href="http://www.openssh.org/it/index.html" target="_blank">OpenSSH Client</a> (<a title="Putty" href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank">Putty</a> su Windows)</li>
<li><a title="Gnucash" href="http://www.gnucash.org/" target="_blank">Gnucash</a></li>
</ul>
<p>Tutti  questi software girano indifferentemente su piattaforme  Linux, Windows  e Mac, il che offre un&#8217;ampia flessibilità. Per me che ho a casa un  server Linux collegato alla rete il tutto è stato molto semplice, ma non  escludo che anche un hosting non troppo costoso offra un supporto  sufficiente per implementare il tutto.</p>
<h2>Server</h2>
<p>La  configurazione del server SSH non richiede niente di particolare, se non  assicurarsi che il firewall sia correttamente configurato per  permettere l&#8217;accesso alla porta 22, o qualunque altra voi abbiate  impostato. Se volete una sicurezza maggiore consiglio di usare  un&#8217;autenticazione tramite chiavi, come descritto <a title="Debianizzati" href="http://guide.debianizzati.org/index.php/Ssh_e_autenticazione_tramite_chiavi" target="_blank">qui</a>.</p>
<p>Il  prossimo passo è creare il database e l&#8217;utente che dovrà utilizzarlo.  Dato che creeremo un tunnel SSH è anche possibile usare phpMyAdmin da  remoto come spiegato ad esempio <a title="shallop.com" href="http://shallop.com/2011/04/howto-use-phpmyadmin-to-remote-admin-mysql-dbs-via-ssh-tunnel/" target="_blank">qui</a>,  ma la procedura è così semplice che io decido di farlo da terminale.  Dopo aver ottenuto l&#8217;accesso al server la sequenza è la seguente:</p>
<pre># mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4012
Server version: 5.1.49-3 (Debian)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql&gt; create database gnucash;
Query OK, 1 row affected (0.00 sec)

mysql&gt; grant all on gnucash.* to gnucash@localhost identified by 'PASSWORD' with grant option;
Query OK, 0 rows affected (0.12 sec)

mysql&gt; flush privileges;
Query OK, 0 rows affected (0.13 sec)

mysql&gt; exit
Bye
#</pre>
<p>Il che significa che, dopo aver ottenuto l&#8217;accesso come utente root a mysql creo il database <em>gnucash</em> e con il comando GRANT creo direttamente l&#8217;utente <em>gnucash</em>,  gli assegno i permessi per l&#8217;uso del datatbase e imposto la PASSWORD di  accesso. Nella documentazione di Gnucash non ho trovato nulla riguardo i  permessi necessari all&#8217;utente per l&#8217;utilizzo del programma, quindi li  assegno tutti, anche se probabilmente è possibile limitarli e migliorare  la sicurezza dell&#8217;accesso.</p>
<h2>Client</h2>
<p>Prima di avviare  Gnucash su un qualsiasi client è necessario creare il tunnel SSH, che si  esegue abbastanza semplicemente su qualsiasi piattaforma.</p>
<h3>OpenSSH Client (Linux e Mac)</h3>
<p>Da un terminale si digita:</p>
<pre># ssh -L 3307:localhost:3306 -i /media/USB/private.key utente@miosito.com</pre>
<p>l&#8217;opzione <em>-i</em> specifica la posizione della chiave privata per l&#8217;autenticazione, se  necessaria, che io tengo nella chiavetta USB, mentre con l&#8217;opzione <em>-L</em> creo il tunnel fino al mio server che si trova in <em>miosito.com</em>, specificando tre parametri:</p>
<p><em>3307</em> è la porta locale a cui mi dovrò collegare per entrare nel tunnel</p>
<p><em>localhost</em> è l&#8217;indirizzo dove è disponibile il server MySQL. Dato che il mio tunnel &#8220;esce&#8221; sulla stessa macchina l&#8217;indirizzo è localhost.</p>
<p><em>3306</em> è la porta alla quale collegarmi per accedere al server MySQL</p>
<h3>Putty (Windows)</h3>
<p>Nella finestra di configurazione di Putty inserisco i seguenti dati:</p>
<p><em>Session</em>: inserisco l&#8217;<em>host name</em>, miosito.com, e la porta del server SSH, 22 o altro.</p>
<p><em>Connection-&gt;Data</em>:  in <em>Login details</em> posso inserire il nome utente per il collegamento SSH, per evitare che mi venga chiesto ogni volta.</p>
<p><em>Connection-&gt;SSH-&gt;Auth</em>: specifico la posizione del file contenente la <em>private key</em> per l&#8217;autenticazione, se necessaria.</p>
<p><em>Connection-&gt;SSH-&gt;Tunnels</em>: in <em>source port</em> inserisco la porta locale di accesso, e in <em>destination</em> inserisco l&#8217;indirizzo del server MySQL e la porta di destinazione con la sintassi <em>localhost:3306</em></p>
<p>Prima di aprire la connessione ho la possibilità, ritornando alla finestra <em>Session</em>, di salvare i parametri della sessione per poterli richiamare senza reinserirli nuovamente. Clicco su <em>Open</em> e dopo aver inserito la password il prompt del terminale mi indicherà che il tunnel è attivo.</p>
<h3>Gnucash</h3>
<p>Ora posso lanciare Gnucash e aprire un nuovo file indicando come formato dei dati <em>mysql</em>, come host la macchina da cui abbiamo aperto il tunnel e la porta di accesso, nel nostro caso <em>127.0.0.1:3307</em>, il nome del database, <em>gnucash</em>, il nome dell&#8217;utente MySQL, <em>gnucash</em>,  e la PASSWORD di accesso. Il programma crea in autmatico tutte le  tabelle necessarie a seconda della struttura dei conti da noi indicata.</p>
<p>Come nome di host ho indicato l&#8217;indirizzo IP perchè su macchine Linux, per motivi che ignoro, se indico <em>localhost:3307</em> mi viene restituito un errore e il collegamento abortisce. Su macchine Windows funzionano entrambe le sintassi.</p>
<p>Sono  pronto ora per inserire i dati. Ogni volta che vorrò modificarli da  qualsiasi posto mi trovi sarà sufficiente aprire il tunnel e da Gnucash  aprire il file esistente inserendo gli stessi parametri sopra indicati.</p>
<p>Se  utilizzate una chiave privata è sconsigliabile sparpagliarla su tutte  le macchine dove lavorate, mentre è pratico e abbastanza sicuro tenerla  su una chiavetta USB dove può trovare posto anche Putty, che non  necessita di installazione e occupa pochissimo spazio.</p>
<p>Auguro un buon pareggio di bilancio a tutti <img src='http://bglug.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2011/09/29/bilancio-online-con-gnucash-mysql-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Postfix nirvana &#8211; Parte II</title>
		<link>http://bglug.it/2008/08/05/postfix-nirvana-parte-ii/</link>
		<comments>http://bglug.it/2008/08/05/postfix-nirvana-parte-ii/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 11:27:46 +0000</pubDate>
		<dc:creator>jimmi</dc:creator>
				<category><![CDATA[Documentazione]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[fetchmail]]></category>
		<category><![CDATA[horde]]></category>
		<category><![CDATA[mailserver]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[postfixadmin]]></category>
		<category><![CDATA[postgrey]]></category>
		<category><![CDATA[spamassassin]]></category>

		<guid isPermaLink="false">http://bglug.it/?p=73</guid>
		<description><![CDATA[Ecco la seconda parte della guida al buon server mail. Come preannunciato nella prima parte, qui parleremo dei programmi accessori che permettono di creare facilmente mailbox virtuali e di rendere la posta (e non solo) disponibile all&#8217;utente tramite una interfaccia web avanzata. Voglio anche qui ringraziare Manuel per il decisivo contributo alla realizzazione della guida. [...]]]></description>
			<content:encoded><![CDATA[<p><em>Ecco la seconda parte della guida al buon server mail. Come preannunciato nella <a title="BgLUG" href="http://bglug.it/2008/07/24/postfix-nirvana-parte-i/" target="_blank">prima parte</a>, qui parleremo dei programmi accessori che permettono di creare facilmente mailbox virtuali e di rendere la posta (e non solo) disponibile all&#8217;utente tramite una interfaccia web avanzata. Voglio anche qui ringraziare Manuel per il decisivo contributo alla realizzazione della guida.</em></p>
<p><span id="more-73"></span></p>
<h3>Sommario</h3>
<ul>
<li><a href="#htoc1">Postfixadmin</a></li>
<li><a href="#htoc2">Postfix: domini e mailbox virtuali</a></li>
<li><a href="#htoc3">Dovecot</a></li>
<li><a href="#htoc4">Dovecot LDA</a></li>
<li><a href="#htoc5">Horde</a></li>
<li><a href="#htoc6">Fetchmail e Gmail server relay</a></li>
</ul>
<h3><a name="htoc1">Postfixadmin</a></h3>
<p>È giunto il momento di installare Postfixadmin, che permette di gestire domini virtuali, mailboxes e alias tramite una interfaccia web costruita in PHP. Postifxadmin è pacchettizzato in Debian Etch, quindi l&#8217;installazione dei file avviene con un semplice &#8220;<code>apt-get install postfixadmin</code>&#8220;.</p>
<p>L&#8217;operazione successiva è la creazione del database e dell&#8217;utente amministratore. È possibile farlo semplicemente con <a title="phpMyAdmin" href="http://www.phpmyadmin.net" target="_blank">phpMyAdmin</a>, oppure direttamente tramite il prompt di MySQL con i comandi:</p>
<pre>CREATE DATABASE postfix;
CREATE USER 'postfix'@'localhost' IDENTIFIED BY 'choose_a_password';
GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@'localhost';</pre>
<p>sostituendo gli opportuni valori, ed inserendo poi gli stessi valori nel file di configurazione <code>/etc/postfixadmin/config.inc.php</code>. Nello stesso file, oltre ai dati del database, è necessario cambiare il valore di <code>$CONF['configured']</code> da <em>false</em> a <em>true</em> per poter inizializzare l&#8217;applicazione.  Io preferisco avere le varie maidir degli utenti suddivise in directory separate per dominio, per cui imposto:</p>
<pre>$CONF['domain_path'] = 'YES';</pre>
<p>A questo punto imposto un VirtualHost sul server web che punti alla directory del programma, nel caso di Debian <code>/usr/share/postfixadmin/</code>, dirigo il browser su <code>http://INDIRIZZO_DI_POSTFIXADMIN/setup.php</code> e, dopo la creazione delle tabelle, mi appare una lista di &#8216;OK&#8217; e il form per la creazione dell&#8217;utente amministratore. Lo inserisco e posso eseguire il login.</p>
<p>Postfixadmin offre all&#8217;utente la possibilità di impostare gli inoltri automatici dei messaggi e un autorisponditore (Vacation). Mentre il primo è già abilitato, per abilitare il secondo dobbiamo effettuare alcune modifiche.</p>
<p>Creo innanzitutto un utente ed un gruppo <em>vacation</em>, aggiungendo a <code>/etc/passwd</code> la riga:</p>
<pre>vacation:*:65501:65501::0:0:Virtual Vacation:/nonexistent:/usr/sbin/nologin</pre>
<p>ed a /etc/group la riga:</p>
<pre>vacation:*:65501:</pre>
<p>Quindi creo una directory di base per l&#8217;autorisponditore, vi copio il file <code>vacation.pl</code>, che in Debian si trova in <code>/usr/share/doc/postfixadmin/VIRTUAL_VACATION/</code>, e cambio i permessi di tutto:</p>
<pre># mkdir /var/spool/vacation
# cd /usr/share/doc/postfixadmin/VIRTUAL_VACATION/
# cp vacation.pl /var/spool/vacation/
# chown vacation:vacation -R /var/spool/vacation</pre>
<p>Nel file <code>vacation.pl</code> devo inserire gli estremi del database modificando le righe:</p>
<pre>my $db_type = 'mysql';
my $db_username = 'postfix';
my $db_password = 'password';
my $db_name     = 'postfix';</pre>
<p>ed infine abilitare il modulo modificando nel file<br />
<code>/etc/postfixadmin/config.inc.php</code> le righe:</p>
<pre>$CONF['vacation'] = 'YES';
$CONF['vacation_domain'] = 'vacation.nomedominio';</pre>
<p>Per far funzionare l&#8217;autorisponditore sono necessari tre moduli Perl. Due di questi li posso installare con:</p>
<pre>apt-get install libemail-valid-perl libmail-sendmail-perl</pre>
<p>mentre il terzo non è incluso nei repository di <em>Debian Etch</em>. È però possibile scaricare il pachetto dai repository di <em>Debian Lenny</em> (testing) ed installarlo senza incontrare problemi di dipendenze con:</p>
<pre># wget http://ftp.it.debian.org/debian/pool/main/libm/libmime-encwords-perl/libmime-encwords-perl_1.010.101-1_all.deb
# dpkg -i libmime-encwords-perl_1.010.101-1_all.deb</pre>
<p>In ultimo dobbiamo definire il servizio <em>vacation</em> e fare in modo che i messaggi indirizzari al domino <em>vacation.nomedominio</em> vi siano girati. Per fare questo aggiungo al file <code>/etc/postfix/master.cf</code> le righe:</p>
<pre>vacation    unix  -       n       n       -       -       pipe
  flags=Rq user=vacation argv=/var/spool/vacation/vacation.pl -f ${sender} -- ${recipient}</pre>
<p>creo poi un file <code>/etc/postfix/transport</code> contenente la riga:</p>
<pre>vacation.nomedominio        vacation:</pre>
<p>compilo il database con:</p>
<pre>#postmap /etc/postfix/transport</pre>
<p>ed aggiungo a <code>/etc/postfix/main.cf</code> la riga:</p>
<pre>transport_maps = hash:/etc/postfix/transport</pre>
<p>Il tutto è ora pronto a funzionare, ma per utilizzarlo devo modificare la configurazione di Postfix.</p>
<h3><a name="htoc2">Postfix: domini e mailbox virtuali</a></h3>
<p>Per fare in modo che Postfix veda i domini virtuali creati da Postfixadmin devo aggiungere le seguenti righe in <code>/etc/postfix/main.cf</code>:</p>
<pre>virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_base = /home/mail
virtual_uid_maps = static:6000
virtual_gid_maps = static:6000</pre>
<p>che indicano rispettivamente gli indirizzi delle mappe del database, l&#8217;indirizzo della directory dove verrannno create le mailbox virtuali, e l&#8217;utente e gruppo proprietari delle mailbox. L&#8217;utente e il gruppo devono esistere nel file /etc/passwd:</p>
<pre>vmail:x:6000:6000::/home/mail:/bin/sh</pre>
<p>e in /etc/group:</p>
<pre>vmail:x:6000:</pre>
<p>e devo creare la directory con i giusti permessi</p>
<pre># mkdir /home/mail
# chown vmail:vmail /home/mail</pre>
<p>Le mappe sono file di testo composti come segue:</p>
<p>mysql_virtual_alias_maps.cf:</p>
<pre>user = postfix
password = password
hosts = 127.0.0.1
dbname = postfix
table = alias
select_field = goto
where_field = address</pre>
<p>mysql_virtual_domains_maps.cf:</p>
<pre>user = postfix
password = password
hosts = 127.0.0.1
dbname = postfix
table = domain
select_field = description
where_field = domain</pre>
<p>mysql_virtual_mailbox_maps.cf:</p>
<pre>user = postfix
password = password
hosts = 127.0.0.1
dbname = postfix
table = mailbox
select_field = maildir
where_field = username</pre>
<p>Ora sono pronto a inserire, tramite l&#8217;interfaccia di Postfixadmin, il mio primo dominio virtuale e i relativi alias e mailboxes. Dopo averlo riavviato Postfix è pronto a ricevere mail per gli account impostati. Posso testare il tutto in locale con telnet:</p>
<pre># telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 nomemacchina.nomedominio ESMTP Postfix (Debian/GNU)

ehlo nomemacchina.nomedominio
250-nomemacchina.nomedominio
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

mail from:&lt;jimmi@server.com&gt;
250 2.1.0 Ok

rcpt to:&lt;jimmi@nomedominio&gt;
250 2.1.5 Ok

data
354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;

prova mail
.
250 2.0.0 Ok: queued as 718BE15DF78

quit
221 2.0.0 Bye
Connection closed by foreign host.</pre>
<p>Se tutto è a posto troverò la mail nell&#8217;Inbox dell&#8217;utente.</p>
<h3><a name="htoc3">Dovecot</a></h3>
<p>Passo ad occuparmi ora del server IMAP. Anche Dovecot è pacchettizato da Debian, e si installa con:</p>
<pre>apt-get install dovecot-imapd dovecot-pop3d</pre>
<p>È possibile attivare facilmente i server imap, imaps, pop3 e pop3s aggiungendo a <code>/etc/dovecot/dovecot.conf</code>:</p>
<pre>protocols = imap imaps pop3 pop3s</pre>
<p>ed eventualmente modificando le sezioni dedicate nello stesso file. Per fare in modo che Dovecot utilizzi le mailbox virtuali modifico seguenti righe di<br />
<code>/etc/dovecot/dovecot.conf</code>:</p>
<pre>mail_location = maildir:/home/mail/%d/%n
auth default {
mechanisms = plain login
passdb sql {
args = /etc/dovecot/dovecot-mysql.conf
}
userdb sql {
args = /etc/dovecot/dovecot-mysql.conf
}
user = postfix
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}</pre>
<p>La sezione &#8220;<code>client</code>&#8221; serve per abilitare l&#8217;autenticazione SASL in postfix, che si attiva aggiungendo le seguenti righe in <code>/etc/postfix/main.cf</code>:</p>
<pre>smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth</pre>
<p>Per ottenere i dati dell&#8217;utente dal database aggiungo poi il file<br />
<code>/etc/dovecot/dovecot-mysql.conf</code>:</p>
<pre>driver = mysql
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, 6000 AS uid, 6000 AS gid FROM mailbox WHERE username = '%u'
connect = host=127.0.0.1 port=3306 dbname=postfix user=postfix password=password default_pass_scheme = CRYPT</pre>
<p>Al riavvio di Dovecot se tutto funziona posso leggere le seguenti righe nei log:</p>
<pre>dovecot: 2008-07-13 19:40:42 Info: Dovecot v1.0.rc15 starting up
dovecot: 2008-07-13 19:40:43 Info: auth-worker(default): mysql: Connected to 127.0.0.1 (postfix)</pre>
<h3><a name="htoc4">Dovecot LDA</a></h3>
<p>Dovecot fornisce anche un programma per la consegna dei messaggi agli utenti virtuali, chiamato Dovecot <strong>L</strong>ocal <strong>D</strong>elivery <strong>A</strong>gent, che può sostituire <em>virtual</em> fornito dal Postfix, con alcune funzionalità aggiuntive, come l&#8217;indicizzazione delle mailbox, l&#8217;utilizzo di quote utente e di Sieve tramite appositi plugin. Per abilitarlo devo aggiungere al file <code>/etc/dovecot/dovecot.conf</code> le righe:</p>
<pre>protocol lda {
..
  # UNIX socket path to master authentication server to find users.
  #auth_socket_path = /var/run/dovecot/auth-master
}
auth default {
..
  socket listen {
    # Note that we're setting a master socket. SMTP AUTH for Postfix uses client sockets.
    master {
      path = /var/run/dovecot/auth-master
      # Auth master socket can be used to look up userdb information for
      # given usernames. This probably isn't very sensitive information
      # for most systems, but still try to restrict the socket access if possible.
      mode = 0600
      user = vmail # User running deliver
      group = vmail # Or alternatively mode 0660 + deliver user in this group
    }
  }
..
}</pre>
<p>Posso ora aggiungere il servizio in Postfix, aggiungendo a<br />
<code>/etc/postfix/master.cf</code>:</p>
<pre>dovecot   unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}</pre>
<p>e indicargli di utilizzarlo inserendo in <code>/etc/postfix/main.cf</code> le righe:</p>
<pre>virtual_transport = dovecot
dovecot_destination_recipient_limit = 1</pre>
<p>Con queste impostazioni <em>deliver</em>, che funziona da utente non privilegiato, genera un errore. Per evitarlo nella <a title="Dovecot MarkMail" href="http://dovecot.markmail.org/" target="_blank">mailing list</a> di Dovecot consigliano di impostare <em>deliver</em> a SUID con il comando:</p>
<pre># chmod u+s /usr/lib/dovecot/deliver</pre>
<p>Riavvio Dovecot e Postfix, e alla prima ricezione posso trovare nei log qualcosa di simile a questo:</p>
<pre>server postfix/pipe[23496]: 23FD715DF87: to=&lt;utente@nomedominio&gt;, relay=dovecot, delay=0.4, delays=0.07/0.02/0/0.31, dsn=2.0.0, status=sent (delivered via dovecot service)</pre>
<h3><a name="htoc5">Horde</a></h3>
<p>Manca ora l&#8217;ultimo pezzo, l&#8217;interfaccia web per gli utenti tramite Horde, un framework con numerosi moduli in PHP. Anche questa applicazione è pacchettizzata da Debian, e l&#8217;installazione è banale se si seguono le indicazioni del <a title="Debian" href="http://wiki.debian.org/Horde" target="_blank">Wiki</a>.</p>
<p>Installo per primo il framework con:</p>
<pre># apt-get install horde3</pre>
<p>abilito un VirtualHost che punti alla sua directory, aggiungendo ad esempio in <code>/etc/apache2/sites-available/default</code>:</p>
<pre>Alias /horde3 /usr/share/horde3
Options FollowSymLinks
AllowOverride Limit
deny from all
allow from TUO_IP</pre>
<p>che mi permetterà di accedere localmente, e inizializzo il database. Quest&#8217;ultima operazione può avvenire da riga di comando con:</p>
<pre>#gunzip &lt; /usr/share/doc/horde3/examples/scripts/sql/create.mysql.sql.gz | mysql -u MYSQL_ADMIN -p</pre>
<p>Avendo cura di modificare in <code>create.mysql.sql.gz</code> i dati di accesso dell&#8217;amministratore di Horde. Fatto ciò puntando il browser su <code>http://nomemacchina.nomedominio/horde3</code> compare la maschera iniziale di Horde. Per il debug di eventuali problemi posso puntare il browser su: <code>http://nomemacchina.nomedominio/horde3/test.php</code></p>
<p>La configurazione di Horde3 avviene creando nelle directory sotto <code>/etc/horde/horde3</code> i file config.php e config.php.bak con maschera dei permessi 777, configurando poi tramite intefaccia web le opzioni nella maschera in <code>Amministrazione--&gt;Impostazione--&gt;Horde</code>, salvando e riportando i permessi dei due file a 644 e 700 rispettivamente.</p>
<p>Per un corretto funzionamento è indispensabile impostare correttamente i parametri nelle maschere <em>Database</em>, <em>Authentication</em> e <em>Preference System</em></p>
<p>Horde mette a disposizione, tra gli altri, i seguenti moduli:</p>
<ul>
<li><strong>IMP </strong> &#8211; Cliente Webmail</li>
<li><strong>Ingo</strong> &#8211; Filtro per le mail</li>
<li><strong>Turba</strong> &#8211; Gestione rubrica</li>
<li><strong>Kronolith</strong> &#8211; Calendario</li>
<li><strong>Nag</strong> &#8211; Gestione attività</li>
<li><strong>Mnemo</strong> &#8211; Gestione note</li>
<li><strong>Passwd</strong> &#8211; Gestione password</li>
<li><strong>MIMP</strong> &#8211; Interfaccia per dispositivi mobili</li>
</ul>
<p>Tutti questi moduli sono presenti nei repository Debian ad eccezione di MIMP, che può essere facilmente installato per Debian con le seguenti operazioni:</p>
<pre># wget http://ftp.horde.org/pub/mimp/mimp-h3-1.1.tar.gz
# tar -xvzf mimp-h3-1.1.tar.gz
# mv mimp-h3-1.1/config /etc/horde/mimp
# mv mimp-h3-1.1 /usr/share/horde3/mimp
# cd /usr/share/horde3/mimp
# ln -s /etc/horde/mimp config</pre>
<p>La configurazione dei vari moduli avviene, analogalmente a quella del framework, in tre operazioni:</p>
<ul>
<li> Creo nelle directory sotto <code>/etc/horde/[nomemodulo]</code> i file config.php e config.php.bak con maschera dei permessi 777</li>
<li> Configuro e salvo tramite intefaccia web le opzioni nella maschera in <code>Amministrazione--&gt;Impostazione--&gt;[nomemodulo]</code></li>
<li> Cambio i permessi dei due file a 644 e 700 rispettivamente.</li>
</ul>
<p>Ovviamente le operazioni dovranno essere ripetute per ogni modulo.</p>
<p>Oltre alle impostazioni più <em>banali</em> possono essere importanti le seguenti impostazioni per i vari moduli:</p>
<p><strong>Horde</strong></p>
<p>Maschera <em>General</em>:</p>
<p>- <em>Determines how we generate   full URLs (for location headers and such)</em></p>
<pre>Assume that we are using SSL and always generate https URLs</pre>
<p>-  <em>What port number is the webserver running on?</em></p>
<pre>443</pre>
<p>Questo mi serve perchè la mia webmail è disponibile su una connessione criptata <em>https</em></p>
<p>Maschera <em>Authentication</em>:</p>
<p>- <em>What backend should we use for authenticating users to Horde?</em></p>
<pre>Let a Horde application handle authentication</pre>
<p>- <em>The application which is providing authentication</em></p>
<pre>imp</pre>
<p>Queste due scelte permettono di autenticarsi con le credenziali create in <em>Postfixadmin</em> ed effettualre il <em>Login</em> una sola volta anzichè dover inserire due volte i dati per leggere la posta. In questo caso è importante creare un utente amministratore e inserire il suo nome nella prima casella.</p>
<p><strong>IMP</strong></p>
<p>Modifico il file <code>/etc/horde/imp4/servers.php</code> inserendo i dati del o dei server mail. Nel file originale sono contenuti diversi esempi, ricordatevi di commentare o cancellare quelli non necessari.</p>
<p>Nel file <code>/etc/horde/imp4/mime_drivers.php</code> modifico la linea:</p>
<pre>$mime_drivers['imp']['html']['inline'] = true;</pre>
<p>Questo mi permette di vedere in linea le mail composte in HTML, anche se non meriterebbero <img src='http://bglug.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  È una scelta giustamente sconsigliata, ma altrimenti le mail HTML vengono formattate in modo impossibile da leggere.</p>
<p><strong>Ingo</strong></p>
<p>Nel file <code>/etc/horde/ingo1/backends.php</code> specifico quale backend utilizzare per i filtri. Le scelte possibili sono <em>null</em> (applica le regole su richiesta), o regole per <em>Maildrop</em>, <em>Procmail</em> o <em>Sieve</em>. La scelta più semplice è:</p>
<pre>/* IMAP Example */
$backends['imap'] = array(
    'driver' =&gt; 'null',
    'preferred' =&gt; 'example.com',
    'hordeauth' =&gt; true,
    'params' =&gt; array(),
    'script' =&gt; 'imap',
    'scriptparams' =&gt; array()
);</pre>
<p>Anche in questo caso le altre scelte vanno commentate o cancellate.</p>
<p><strong>Turba</strong></p>
<p>Nel file <code>/etc/horde/turba2/sources.php</code> specifico quale backend utilizzare. Per utilizzare MySQL la configurazione tipica è:</p>
<pre>$cfgSources['localsql'] = array(
    'title' =&gt; _("My Address Book"),
    'type' =&gt; 'sql',
    'params' =&gt; array_merge($conf['sql'], array('table' =&gt; 'turba_objects')),
    'map' =&gt; array(
        '__key' =&gt; 'object_id',
        '__owner' =&gt; 'owner_id',
        '__type' =&gt; 'object_type',
        '__members' =&gt; 'object_members',
        '__uid' =&gt; 'object_uid',
        'name' =&gt; 'object_name',
        'email' =&gt; 'object_email',
        'alias' =&gt; 'object_alias',
        'homeAddress' =&gt; 'object_homeaddress',
        'workAddress' =&gt; 'object_workaddress',
        'homePhone' =&gt; 'object_homephone',
        'workPhone' =&gt; 'object_workphone',
        'cellPhone' =&gt; 'object_cellphone',
        'fax' =&gt; 'object_fax',
        'title' =&gt; 'object_title',
        'company' =&gt; 'object_company',
        'notes' =&gt; 'object_notes',
        'pgpPublicKey' =&gt; 'object_pgppublickey',
        'smimePublicKey' =&gt; 'object_smimepublickey',
        'freebusyUrl' =&gt; 'object_freebusyurl'
    ),
    'search' =&gt; array(
        'alias',
        'email'
    ),
    'strict' =&gt; array(
        'object_id',
        'owner_id',
        'object_type',
    ),
    'export' =&gt; true,
    'browse' =&gt; true,
    'use_shares' =&gt; true,
);</pre>
<p>ed è inoltre necessario creare la tabella in MySQL, utilizzando il comando:</p>
<pre># mysql -u MYSQL_ADMIN -p DATABASE &lt; /usr/share/doc/turba2/examples/scripts/sql/turba_objects.mysql.sql</pre>
<p><strong>Kronolith</strong></p>
<p>Se si sceglie il driver SQL è necessario creare la tabella con il comando:</p>
<pre># mysql -u MYSQL_ADMIN -p DATABASE &lt; /usr/share/doc/kronolith2/examples/scripts/sql/kronolith.mysql.sql</pre>
<p><strong>Nag</strong></p>
<p>Se si sceglie il driver SQL è necessario creare la tabella con il comando:</p>
<pre># mysql -u MYSQL_ADMIN -p DATABASE &lt; /usr/share/doc/nag2/examples/scripts/sql/nag.sql</pre>
<p><strong>Passwd</strong><br />
Nel file <code>/etc/horde/passwd3/backends.php</code> ho modificato le linee:</p>
<pre>driver' =&gt; 'sql',
'params' =&gt; array(
'phptype'    =&gt; 'mysql',
'hostspec' =&gt; '127.0.0.1',
'port' =&gt; '3306',
'protocol' =&gt; 'tcp',
'username'   =&gt; 'postfix',
'password'   =&gt; 'password',
'encryption' =&gt; 'crypt-md5',
'database'   =&gt; 'postfix',
'table'      =&gt; 'mailbox',
'user_col'   =&gt; 'username',
'pass_col'   =&gt; 'password',
'show_encryption' =&gt; false)</pre>
<p>Per poter modificare la password nel database creato da Postfixadmin.</p>
<h3><a name="htoc6">Fetchmail e Gmail server relay</a></h3>
<p>Vi sono altri due add-ons non strettamente collegati alla configurazione di un server mail ma molto utili specialmente per server fatti in casa.</p>
<p><strong>Fetchmail</strong></p>
<p>È un ottimo programma per ritirare mail da server POP3 o IMAP e consegnarla al server locale. Sia Postfixadmin che Horde hanno dei plugin che gestiscono fetchmail in modi leggermente diversi. Con Horde l&#8217;utente inserisce i dettagli del server remoto e scarica la posta mentre è collegato, mentre con Postfixadmin in base ai dati inseriti dall&#8217;amministratore nel database vengono creati dei file <code>~/.fetchmailrc</code> al volo che possono essere usati inserendo in crontab lo script <code>fetchmail.pl</code>.</p>
<p>Purtroppo entrambi hanno due limitazioni che me ne impediscono l&#8217;utilizzo: non implementano <a title="Freepops" href="http://www.freepops.org/it/">Freepops</a> e non permettono l&#8217;uso di autenticazioni SSL. Freepops è un programmino che permette di scaricare le mail diretamente dalla webmail, aggirando la limitazione all&#8217;uso del server POP per gli abbonamenti free adottato, ad esempio, da Libero e Inwind. L&#8217;uso del protocollo SSL è indispensabile invece per scaricare mail dai server di Gmail o Autistici/Inventati.</p>
<p>La versione di Fetchmail pacchettizzata da Debian ci permette di avviare il programma in modalità demone con il tipico script <code>/etc/init.t/fetchmail</code>. Il pacchetto di Freepops purtroppo fa riferimento ad una versione troppo datata e non più funzionante, e bisogna quindi installare la versione offerta dai <a title="Backports" href="http://backports.org/">Backports</a>. Una volta installati entrambi avremo il demone <em>freepopsd</em> in ascolto alla porta 2000 (di default), e possiamo modificare il file <code>/etc/fetchmailrc</code> aggiungendo le sezioni relative ai vari server. Alcuni utilizzi tipici sono:</p>
<p>Server POP3</p>
<pre>poll SERVER_POP with proto pop3 auth password
user "NOMEUTENTE.REMOTO" there
with password "password"
is NOMEUTENTE.LOCALE here options fetchall</pre>
<p>Server che richiedono Freepops</p>
<pre>poll SERVER_POP with proto pop3 port 2000
user "NOMEUTENTE.REMOTO" there
with password "password"
is NOMEUTENTE.LOCALE here options fetchall</pre>
<p>Server Gmail</p>
<pre>poll SERVER_POP with proto pop3 port 995
user "NOMEUTENTE.REMOTO" there
with password "password"
is NOMEUTENTE.LOCALE here options ssl sslcertck fetchall</pre>
<p><strong>Gmail Server Relay</strong></p>
<p>Normalmente le mail spedite da un server casalingo con IP dinamico vengono rifiutate per motivi di sicurezza, e si è quindi costretti ad usare un server che vi faccia da <em>relay</em>, che vi permetta cioè di spedire mail attraverso il suo servizio. Vi dovesse capitare di non avere a disposizione un relay, o di volerne utilizzare uno alternativo, potete usufruire del servizio offerto da Gmail, il quale però richiede un&#8217;autenticazione sicura via SSL. Per implementarla aggiungo o modifico le seguenti righe di <code>/etc/postfix/main.cf</code>:</p>
<pre>smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file=/etc/postfix/gmail.pem
smtpd_tls_key_file=/etc/postfix/gmail.key
smtpd_sasl_application_name = smtpd
smtp_tls_per_site = hash:/etc/postfix/smtp_tls_per_site
smtp_use_tls=yes
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_cert_file=/etc/postfix/gmail.pem
smtp_tls_key_file=/etc/postfix/gmail.key
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
relayhost = [smtp.gmail.com]:587</pre>
<p>creo il file <code>/etc/postfix/sasl_passwd</code>, vi aggiungo le righe:</p>
<pre># Contents of sasl_passwd
#
[smtp.gmail.com]              NOMEUTENTE@gmail.com:PASSWORD</pre>
<p>e lo compilo con:</p>
<pre># postmap /etc/postfix/sasl_passwd</pre>
<p>Infine, se non li possiedo già, creo il mio certificato auto firmato con i seguenti passaggi:</p>
<pre># /usr/local/ssl/misc/CA.pl -newca
  CA certificate filename (or enter to create)
   Making CA certificate ...
  Generating a 1024 bit RSA private key
  .......++++++
  ...................++++++
  writing new private key to './demoCA/private/cakey.pem'
  Enter PEM pass phrase: <strong>password</strong>
  Verifying - Enter PEM pass phrase: <strong>password</strong>
  -----
  You are about to be asked to enter information that will be incorporated
  into your certificate request.
  What you are about to enter is what is called a Distinguished Name or a DN.
  There are quite a few fields but you can leave some blank
  For some fields there will be a default value,
  If you enter '.', the field will be left blank.
  -----
  Country Name (2 letter code) [US]:<strong>IT</strong>
  State or Province Name (full name) [Pennsylvania]:<strong>Italia</strong>
  Locality Name (eg, city) []:<strong>Bergamo</strong>
  Organization Name (eg, company) [Internet Widgits Pty Ltd]:<strong>Casa</strong>
  Organizational Unit Name (eg, section) []:<strong>Server</strong>
  Common Name (eg, YOUR name) []:<strong>nomemacchina.nomedominio</strong>
  Email Address []:<strong>mioindirizzoposta</strong>
  Please enter the following 'extra' attributes
  to be sent with your certificate request
  A challenge password []:
  An optional company name []:
  Using configuration from /usr/lib/ssl/openssl.cnf
  Enter pass phrase for ./demoCA/private/cakey.pem:<strong>password</strong>
  ...
  # openssl req -new -nodes -subj '/CN=nomemacchina.nomedominio/O=Casa/C=IT/ST=Italia/L=Bergamo/emailAddress=mioindirizzoposta' -keyout gmail.key -out gmail.req -days 3650
  # openssl ca -out gmail.pem -infiles gmail.req
  Using configuration from /usr/lib/ssl/openssl.cnf
  Enter pass phrase for ./demoCA/private/cakey.pem:<strong>password</strong>
  ...</pre>
<p>Al riavvio di Postfix dovrei poter inviare messaggi tramite Gmail, che risulterà dai log con un messaggio di questo tipo:</p>
<pre>Jul 25 11:36:52 server postfix/smtp[28745]: 8C31415DF79: to=&lt;pippo@pippo.com&gt;, relay=smtp.gmail.com[64.233.183.109]:587, delay=6.5, delays=0.0 5/0.05/3.8/2.7, dsn=2.0.0, status=sent (250 2.0.0 OK 1216978613 i4sm31861110nfh.1)</pre>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/08/05/postfix-nirvana-parte-ii/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Postfix nirvana &#8211; Parte I</title>
		<link>http://bglug.it/2008/07/24/postfix-nirvana-parte-i/</link>
		<comments>http://bglug.it/2008/07/24/postfix-nirvana-parte-i/#comments</comments>
		<pubDate>Thu, 24 Jul 2008 04:29:37 +0000</pubDate>
		<dc:creator>jimmi</dc:creator>
				<category><![CDATA[Documentazione]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[amavis]]></category>
		<category><![CDATA[clamav]]></category>
		<category><![CDATA[dovecot]]></category>
		<category><![CDATA[fetchmail]]></category>
		<category><![CDATA[horde]]></category>
		<category><![CDATA[mailserver]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[postfixadmin]]></category>
		<category><![CDATA[postgrey]]></category>
		<category><![CDATA[spamassassin]]></category>

		<guid isPermaLink="false">http://bglug.it/?p=71</guid>
		<description><![CDATA[Questa è la prima parte della guida, e tratta delle impostazioni di base di Postfix. Nella seconda parte verranno affrontati i programmi accessori. Questo documento, scritto a quattro mani con Manuel, spiega come configurare un server di posta in modo da avere nel proprio sistema utenti, sia reali sia virtuali, che possono accedere tramite interfaccia [...]]]></description>
			<content:encoded><![CDATA[<p><em>Questa è la prima parte della guida, e tratta delle impostazioni di base di Postfix. Nella <a title="BgLUG" href="http://bglug.it/2008/08/05/postfix-nirvana-parte-ii/" target="_blank">seconda parte</a> verranno affrontati i programmi accessori.</em></p>
<p>Questo documento, scritto a quattro mani con Manuel, spiega come configurare un server di posta in modo da avere nel proprio sistema utenti, sia reali sia virtuali, che possono accedere tramite interfaccia web alle loro caselle e-mail, con protezione da virus, worm e spam.</p>
<p><span id="more-71"></span></p>
<h3>Sommario</h3>
<ul>
<li><a href="#htoc1">Introduzione</a></li>
<li><a href="#htoc2">Postfix: configurazione di base</a></li>
<li><a href="#htoc3">Amavisd-new, Spamassassin, ClamAV</a></li>
<li><a href="#htoc4">Postgrey</a></li>
<li><a href="#htoc5">Postfix e i suoi controlli anti-UCE</a></li>
</ul>
<h3><a name="htoc1">Introduzione</a></h3>
<p>Per utente virtuale si intende qualcuno che non ha un account fisico sulla macchina (non c’è alcun suo riferimento nel file /etc/passwd) ed esiste solo per il sistema di posta. La gestione di questi utente avviene tramite interfaccia web e i loro dati sono registrati su un database SQL.</p>
<p>I mezzi scelti per conseguire lo scopo sono:</p>
<ul>
<li><a title="Postfix" href="http://www.postfix.org/" target="_blank">Postfix 2.3.8<br />
</a></li>
<li><a title="Amavisd-new" href="http://www.ijs.si/software/amavisd/" target="_blank">Amavisd-new 2.4.2</a></li>
<li><a title="Clamav" href="http://clamav.net/" target="_blank">Clamav 0.93.1</a></li>
<li><a title="Spamassassin" href="http://spamassassin.apache.org/" target="_blank">Spamassassin 3.2.3</a></li>
<li><a title="Postgrey" href="http://postgrey.schweikert.ch/" target="_blank">Postgrey 1.27</a></li>
<li><a title="Postfixadmin" href="http://postfixadmin.sourceforge.net/" target="_blank">Postfixadmin 2.2.0</a></li>
<li><a title="Dovecot" href="http://dovecot.org/" target="_blank">Dovecot 1.0<br />
</a></li>
<li><a title="Horde" href="http://horde.org/" target="_blank">Horde 3.1.3<br />
</a></li>
<li><a title="Fetchmail" href="http://www.fetchmail.info/" target="_blank">Fetchmail 6.3.6<br />
</a></li>
</ul>
<p>Per questa installazione ho inoltre utilizzato:</p>
<ul>
<li><a title="Apache" href="http://apache.org/" target="_blank">Apache 2.2.3 </a></li>
<li><a title="MySQL" href="http://www.mysql.com/" target="_blank">MySQL 5.0.32</a></li>
<li><a title="PHP" href="http://www.php.net/" target="_blank">PHP 4.4.4</a></li>
</ul>
<p>la cui configurazione va però oltre gli scopi di questo howto. Tutti questi software sono stati installati partendo dai pacchetti offerti dalla distribuzione Debian Etch. Le principali fonti di ispirazione sono stati un howto precedentemente scritto da Manuel, <a title="Howtoforge" href="http://www.howtoforge.com/virtual_postfix_mysql_quota_courier" target="_blank">Howtoforge</a>, i wiki di <a title="Dovecot" href="http://wiki.dovecot.org/" target="_blank">Dovecot</a>, <a title="Horde" href="http://wiki.horde.org/WikiHome?referrer=WikiHome" target="_blank">Horde</a>, <a title="Debian" href="http://wiki.debian.org/Horde" target="_blank">Debian</a> e <a title="Debian Administration" href="http://www.debian-administration.org/articles/259" target="_blank">Debian Administration</a>.</p>
<h3><a name="htoc2">Postfix: configurazione di base</a></h3>
<p>Prima di procedere all&#8217;installazione di Postfix occorre assicurarsi che la propria macchina sia FQDN, cioè abbia un nome corretto (per intenderci, al comando hostname deve rispondere qualsiasi cosa che non sia localhost o localhost.localdomain). Per questo occorre impostare il nome macchina e settare il file <code>/etc/hosts</code> correttamente.</p>
<p>I principali file di configurazione sono due: <code>main.cf</code> in cui stanno tutti i parametri della parte MTA e <code>master.cf</code> in cui stanno i parametri del demone, ed entrambi si trovano in <code>/etc/postfix</code>.</p>
<p>Il <code>main.cf</code> ha moltissime opzioni (potete trovare <a title="Postfix" href="http://www.postfix.org/postconf.5.html">qui</a> un elenco completo); vediamo le più importanti (che vanno modificate rispetto al default):</p>
<pre># questa sezione riguarda le mail 'rimbalzate' :
# si specifica cosa notificare e a quale account

soft_bounce = no
notify_classes = resource, software, bounce, policy, protocol
2bounce_notice_recipient = postmaster

myhostname = nomemacchina.nomedominio
mydomain = nomedominio

# qui si dice a postfix da quali interfacce
# accettare posta

inet_interfaces = all

# myorigin è il dominio che viene aggiunto alle mail inviate
# dagli utenti locali, mentre mydestination è l'elenco dei
# domini che postfix identifica come locali. NON vanno
# elencati qui i domini virtuali.

myorigin = $myhostname
mydestination = $myhostname

# mynetworks è importantissimo: si deve settare in maniera
# corretta altrimenti si può diventare degli open-relay: in
# questa situazione chiunque da internet può usare il nostro
# postfix per inviare posta e si rischia la blacklist
# (e quindi essere di fatto tagliati fuori in partenza)
# un buon test di open-relay sul proprio MTA è questo:
# $telnet relay-test.mail-abuse.org

mynetworks = 127.0.0.0/8, ip.della.rete
relay_domains = $mydestination

# qui abbiamo indicato alcune 'mappe' necessarie per il
# funzionamento dell' MTA. Si noti che hash: indica che
# quella mappa deve essere messa sotto forma di
# database Berkeley (vedremo poi come).

alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
sender_canonical_maps = hash:/etc/postfix/sender_canonical</pre>
<p>per ora il <code>master.cf</code> non va toccato.</p>
<p>Sono da controllare anche il file <code>aliases</code> e il <code>sender_canonical</code>.</p>
<p>Nel file <code>aliases</code> ci sono i riferimenti ai vari utenti e serve per decidere chi è il destinatario delle mail: va modificato specificando a chi va recapitata la posta di root, solitamente l&#8217;utente di &#8216;manutenzione&#8217; che utilizzate nel vostro sistema (non usate root per queste cose, vero?). Ad ogni modifica del file aliases deve seguire il comando:</p>
<pre># postalias /etc/postfix/aliases</pre>
<p>per aggiornare il database aliases, che viene scritto nel file <code>aliases.db</code>.</p>
<p>Attenzione perché può esistere anche un file <code>/etc/aliases</code>: è quello che utilizza sendmail, e per il nostro sistema di posta non serve (ogni modifica a quel file risulta ininfluente).</p>
<p>Il <code>sender_canonical</code> invece serve per tradurre gli account degli utenti locali in indirizzi di posta elettronica. Una volta modificato occorre dare:</p>
<pre># postmap /etc/postfix/sender_canonical</pre>
<p>se tutto è ok si può far partire postfix e testarlo con:</p>
<pre># telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
220  ESMTP Postfix</pre>
<h3><a name="htoc3">Amavisd-new, Spamassassin, ClamAV</a></h3>
<p>La configurazione che ho effettuato fino ad ora è sufficiente per un valido, robusto e sicuro sistema di posta. Purtroppo però si sente sempre più l&#8217;esigenza di proteggere da virus e spam gli utenti: in prima battuta non ci si pensa, ma se un nostro cliente ha un virus che invia mail a raffica la cosa si ripercuote anche su di noi, sovraccaricando il nostro MTA e rischiando di farlo finire in qualche black-list da cui è poi difficile uscire&#8230;</p>
<p>Amavisd-new è una delle versioni demone di amavis-perl; gli aspetti più interessanti sono:<br />
- un&#8217;ottima integrazione con postfix<br />
- può utilizzare diversi software antivirus (anche più di uno sulla stessa macchina)<br />
- può invocare direttamente spamd (il demone di spamassassin) e</p>
<p>Sia Spamassassin che ClamAV  devono essere costantemente aggiornati per essere efficaci, cosa che non è sempre garantita con i repository di Debian. Per questa ragione è consigliabile scaricarli dai repository di volatile, aggiungendo a <code>/etc/apt/sources.list</code> la riga:</p>
<pre>deb http://ftp2.de.debian.org/debian-volatile sarge/volatile main</pre>
<p>per installare il tutto eseguo da riga di comando:</p>
<pre># apt-get update
# apt-get install amavisd-new spamassassin clamav clamav-daemon clamav-freshclam zoo unzip bzip2 unzoo nomarch lzop pax</pre>
<p>Passo quindi alla configurazione. È necessario abilitare ClamAV e Spamassassin in <code>/etc/amavis/conf.d/15-content_filter_mode</code>, che dovrà avere questo aspetto:</p>
<pre>use strict;

# You can modify this file to re-enable SPAM checking
# through spamassassin and to re-enable antivirus checking.

#
# Default antivirus checking mode
# Uncomment the two lines below to enable it back
#

@bypass_virus_checks_maps = (
   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

#
# Default SPAM checking mode
# Uncomment the two lines below to enable it back
#

@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
1;  # ensure a defined return</pre>
<p>ed è consigliabile aggiungere la riga</p>
<pre>$pax='pax';</pre>
<p>nel file <code>/etc/amavis/conf.d/50-user</code>. Normalmente le impostazioni di default contenute in <code>/etc/amavis/conf.d/20-debian_defaults</code> non devono essere modificate. Riavvio i demoni con:</p>
<pre>/etc/init.d/amavis restart
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart</pre>
<p>e posso proseguire nella configurazione di Postfix. Per fare in modo che le mail vengano inoltrate al demone di amavisd-new aggiungo le seguenti righe a <code>/etc/postfix/main.cf</code>:</p>
<pre>content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings</pre>
<p>e poi aggiungo le seguenti in <code>/etc/postfix/master.cf</code>:</p>
<pre>amavis unix - - - - 2 smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes

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>Faccio ripartire postfix e con &#8220;<code>netstat -tap</code>&#8221; vedo Postfix (master) in ascolto sulle porte 25 (smtp) e 10025 e amavisd-new sulla porta 10024. Dopo aver spedito o ricevuto alcune e-mail posso verificare il funzionamento di tutto nei log.</p>
<p>ClamAV non ha solitamente bisogno di alcuna impostazione particolare. Il demone <em>freshclam</em> provvederà a tenere sempre aggiornato il database dei virus. Debian durante l&#8217;installazione crea già gli utenti e i gruppi necessari. Sarà sufficiente aggiungere l&#8217;utente <em>clamav</em> al gruppo <em>amavis</em> e riavviare i demoni con i comandi:</p>
<pre># adduser clamav amavis
# /etc/init.d/amavis restart
# /etc/init.d/clamav-daemon restart
# /etc/init.d/clamav-freshclam restart</pre>
<p>Spamassassin è un software scritto in Perl in grado di identificare e bloccare la posta indesiderata (chiamata spam, UCE &#8211; unsollicited commercial e-mail oppure anche UBE &#8211; unsollicited bulk e-mail) con una buona accuratezza tramite una serie di test euristici sugli headers e sul corpo della mail.</p>
<p>Come impostazioni di base, è richiesto a Spamassassin di raggiungere un punteggio pari a 6.3 per identificare la mail come spam; io ho abbassato la soglia fino a 5 impostando in <code>/etc/spamassassin/local.cf</code>:</p>
<pre>required_score           5.0</pre>
<p>e fino ad ora non mi è mai capitato che abbia bloccato una mail che non fosse spam, ed ha lasciato passare alcune e-mail che invece lo erano. Ovviamente non si può garantire un’ accuratezza del 100% perché si rischierebbe di stringere troppo i controlli ed avere troppi falsi positivi.</p>
<p>A questo punto per Debian modifico il file /etc/default/spamassassin con:</p>
<pre>ENABLED=1</pre>
<p>Ed avvio il demone:</p>
<pre># /etc/init.d/spamassassin start</pre>
<p>Una delle caratteristiche più utili di Spamassassin sono i filtri &#8220;bayesiani&#8221; che filtrano le mail sulla base di sequenze di caratteri che compaiono spesso nello spam, e che vengono abilitati in <code>/etc/spamassassin/local.cf</code> dalle righe:</p>
<pre># Enable the Bayes system
use_bayes               1

bayes_path /var/lib/amavis/.spamassassin/bayes

# Enable Bayes auto-learning
bayes_auto_learn              1</pre>
<p>la seconda riga dice dove si trova il database, l&#8217;indirizzo è quello della configurazione standard di Debian, e l&#8217;ultima attiva l&#8217;autoapprendimento, che inizierà al riavvio Spamassassin. Per fargli apprendere più velocemente è possibile dargli in pasto delle directory contenenti spam o mail &#8220;pulite&#8221;, loggandosi come utente amavis e dando i comandi:</p>
<pre>sa-learn --spam -C /var/lib/amavis/.spamassassin/ --showdots [directorySPAM]
sa-learn --ham -C /var/lib/amavis/.spamassassin/ --showdots [directoryHAM]</pre>
<p>Per tenere le regole sempre aggiornate posso scaricare periodicamente i file configurazione (rules, scores, etc.) inserendo in crontab una riga tipo:</p>
<pre>0 4 * * * sa-update &amp;&amp; /etc/init.d/spamd restart</pre>
<p>È anche possibile aggiungere a Spamassassin moduli come Razor2, Pyzor, DCC, ma questo va un poco oltre lo scopo di questo howto, quindi vi rimando alla <a title="HowtoForge" href="http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.04-p3" target="_blank">documentazione specifica</a>.</p>
<h3><a name="htoc4">Postgrey</a></h3>
<p>I filtri tipo greylist sono uno dei recenti metodi di lotta allo SPAM, e si basano sul fatto che la maggior parte degli spammer inviano i messaggi attraverso server che non gestiscono una coda per la ritrasmissione dei messaggi falliti. Quando una mail viene ricevuta per la prima volta viene registrata la tripletta server/mittente/destinatario e viene respinta con un messaggio 450 di errore temporaneo. I server di cui sopra non riproveranno, mentre un server regolare dovrebbe riprovare l&#8217;invio dopo qualche minuto, quando il nostro server, dopo aver verificato la tripletta, lo accetterà. Questo provoca un ritardo nella ricezione di tutte le e-mail, ma evita la ricezione di gran parte dello spam.</p>
<p>Debian mette a disposizione Posgrey, che implementa una greylist in Postfix. L&#8217;installazione si esegue come sempre con:</p>
<pre># apt-get install postgrey</pre>
<p>dopo l&#8217;installazione trovo il demone in ascolto sulla porta 60000, come posso verificare con:</p>
<pre># netstat -anp | grep 60000
tcp        0      0 127.0.0.1:60000         0.0.0.0:*               LISTEN     18478/postgrey.pid</pre>
<p>Per fare in modo che Postfix usi il demone devo aggiungere la seguente riga in /etc/postfix/main.cf, tra le &#8220;smtpd_recipient_restrictions&#8221;:</p>
<pre>check_policy_service inet:127.0.0.1:60000</pre>
<p>Controllando il log posso vedere il tutto funzionare alla prima ricezione</p>
<h3><a name="htoc5">Postfix e i suoi controlli anti-UCE</a></h3>
<p>Postfix prevede la possibilità di effettuare un certo numero di test sulle mail in transito: è possibile controllare gli headers e il corpo del messaggio, mittenti e i destinatari, parti mime ed allegati. Lo svantaggio è che tutto questo causa un forte appesantimento del sistema di posta, e l&#8217;accuratezza non è molto elevata (c&#8217;è il rischio di avere molti falsi positivi e falsi negativi).</p>
<p>Nel main.cf possiamo specificare questi controlli (che sono una piccola parte rispetto a quelli disponibili):</p>
<pre># vengono specificate le tavole con cui confrontare le mail
# in transito. Se sul vostro sistema è installato pcre è
# consigliabile utilizzare questo al posto delle regexp per
# questioni di velocità.
#header_checks = regexp:/etc/postfix/header_checks
#body_checks = regexp:/etc/postfix/body_checks
header_checks = pcre:/etc/postfix/header_checks
body_checks = pcre:/etc/postfix/body_checks

# si controlla la parte mime degli headers del messaggio
#mime_header_checks = regexp:/etc/postfix/mime_header_checks
mime_header_checks = pcre:/etc/postfix/mime_header_checks

# si richiede che chi si collega al nostro server smtp
# invii un helo/ehlo (alcuni spammer non lo fanno...)
smtpd_helo_required = yes

# il controllo lo si può fare sul mittente, sul destinatario
# o sul recipient (che è l'ultimo ad essere specificato
# nella mail) è preferibile fare il controllo sul recipient e
# non sul sender per poter avere il maggior numero di
# informazioni sulla mail che viene bloccata e’ anche
# possibile inserire, tra i vari server che mantengono le
# black-list, la riga reject_rbl_client dnsbl.sorbs.net,
# Il problema e’ che in questo database sono elencati
# alcuni server smtp italiani molto usati, tra i quali quello
# di libero ed alcuni di telecom italia...
#smtpd_client_restrictions =
#smtpd_sender_restrictions =
smtpd_recipient_restrictions =  permit_mynetworks,
                                check_sender_access hash:/etc/postfix/access,
                                check_recipient_access hash:/etc/postfix/access,
                                check_client_access hash:/etc/postfix/access,
                                reject_invalid_hostname,
                                reject_non_fqdn_sender,
                                reject_unknown_sender_domain,
                                reject_unauth_destination,
                                reject_rhsbl_client blackhole.securitysage.com,
                                reject_rhsbl_sender blackhole.securitysage.com,
                                reject_rbl_client bl.spamcop.net,
                                reject_rbl_client l1.spews.dnsbl.sorbs.net,
                                reject_rbl_client dul.spews.dnsbl.sorbs.net,
                                reject_rbl_client sbl-xbl.spamhaus.org,
                                reject_rbl_client combined.njabl.org

# non è esattamente un controllo anti-UCE, ma se ci sono
# utenti non più attivi che ricevono e-mail valide può essere
# utile avvisare il mittente che l’indirizzo non è più
# valido, ed eventualmente comunicare il nuovo indirizzo.
relocated_maps = hash:/etc/postfix/relocated</pre>
<p>Vediamo più da vicino queste mappe (e come si compilano): alcune sono di tipo <em>hash</em> ed altre di tipo <em>pcre</em> (o regexp). Per quelle di tipo hash occorre dare il comando postmap prima di riavviare postfix per aggiornare il database, mentre per le altre basta solamente riavviare il demone postfix.</p>
<p><strong>/etc/postfix/body_checks  (pcre o regexp)</strong></p>
<p>la forma in cui devono essere messe le regole è:</p>
<pre>/pattern/      AZIONE	MOTIVAZIONE</pre>
<p>Tra pattern, azione e motivazione ci deve essere almeno uno spazio; per questioni di chiarezza visiva mi piace impaginare il file utilizzando vari [tab] in maniera da avere tutto incolonnato.</p>
<p>Un esempio di body_checks è:</p>
<pre># il testo che vogliamo intercettare va messo tra / /, e può
# contenere spazi. La clausola REJECT indica il rifiuto del
# messaggio (ce ne sono altre: OK, WARN, ecc..)
# [A10] è un codice univoco che utilizzo io per capire quale
# testo ha causato il rifiuto del messaggio (utile ad
# esempio per testare le regole) il mittente riceverà in
# questo caso un messaggio di bounce con la motivazione:
# [A10] Your email had spam-like body contents.
# Si può leggere il file sample-pcre-body.cf.

/sono spammer/ 	REJECT [A10] Your email had spam-like body contents.</pre>
<p>si può anche andare sul complicato utilizzando le espressioni regolari:</p>
<pre># così io impedisco il recapito di mail con allegati dei file aventi
# estensioni che fanno supporre  la presenza di virus; come visto
# prima si può mettere un testo dopo il reject che spiega la
# motivazione e suggerisce di zippare l'allegato per poterlo inviare.

/name=".*\.(com|exe|bat|cmd)"/            REJECT [1] Filetype not permitted, please ZIP them
/name=".*\.(hta|vb[esx]|wsf|wsh|js|jse)"/ REJECT [2] Filetype not permitted, please ZIP them
/name=".*\.(shb|shs|lnk|chm|pif|scr)"/    REJECT [3] Possible virus attachment
/^TVqQAAMAAAAEAAAA\/\/8AALgAAAAAAAAAQAAA/ REJECT [4] Possible virus attachment</pre>
<p><strong>/etc/postfix/header_checks  (pcre o regexp)</strong></p>
<p>la forma è la medesima di body_ckecks, ma in questo caso dobbiamo specificare gli headers:</p>
<pre># si lavora ad esempio sul programma con cui è stata creata
# la mail, sul soggetto, ma ci si può sbizzarrire...

/^X-Mailer: Floodgate/  REJECT [A19] Spam-like header contents.
/^Subject: .*Super Viagra/  	REJECT [B09] Spam-like Subject.

# possiamo anche bloccare mittenti e destinatari, in modo molto
# similare a quel che fa /etc/postfix/access
# per maggiori informazioni si veda il file sample-pcre-header.cf

/^From:.*utente@dominio*$/      	REJECT This account sends spam.
/^To:.*utente@dominio.locale*$/ 	REJECT This account isn't active.</pre>
<p><strong>/etc/postfix/mime_header_checks  (pcre o regexp)</strong></p>
<p>è una tavola specifica per le estensioni mime, che possono sfuggire ai controlli sul body e sugli headers; la sintassi è del tutto simile ai due file precedenti.<br />
Io utilizzo clausole molto simili a questa:</p>
<pre># blocco i file .pif (e allo stesso modo qualsiasi file con
# estensione pericolosa).

/name=[^&gt;]*\.pif/ 			REJECT Files .pif may contain viruses.</pre>
<p><strong>/etc/postfix/access  (hash)</strong></p>
<p>Come detto, serve specificamente per intercettare mittenti o destinatari indesiderati.<br />
La sintassi prevede 3 categorie su cui effettuare i confronti: un utente ben determinato, un certo utente di qualsiasi dominio o tutti gli utenti di un certo dominio.</p>
<p>Ad esempio:</p>
<pre># occorre specificare il codice e la risposta che postfix restituisce
# al mittente. Nei primi due casi andiamo in match su indirizzi e-mail
# completi nel terzo esempio il confronto lo si fa sull’utente e nel
# quarto sul dominio per altre informazioni man 5 access
# oppure sample-pcre-access.cf

utente1@dominio1  			550 You are a spammer!
pippo@dominio2				550 This account is no longer active
utente@      				550 Your email comes from a blacklisted address
dominio      				550 Your email comes from a blacklisted domain</pre>
<p>Il file access e’ anche importante per effettuare delle whitelist sugli indirizzi da accettare, anche se provengono da utenti, domini o indirizzi IP elencati in qualche black-list.</p>
<p>In particolare dobbiamo, nel rispetto delle RFC, accettare qualsiasi cosa indirizzato alla casella postmaster ed eventualmente alla abuse.</p>
<p>Quindi inseriamo:</p>
<pre>postmaster@nomedominio		OK
abuse@nomedominio		OK</pre>
<p>Se qualche nostro utente vuole ricevere posta da utenti in BL, possiamo elencare qui i mittenti specifici o l’intero dominio di appartenenza:</p>
<pre>utente@dominioinbl		OK
dominioinbl			OK</pre>
<p style="text-align: right;"><a title="BgLUG" href="http://bglug.it/2008/08/05/postfix-nirvana-parte-ii/" target="_blank"><em>Continua&#8230;</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/07/24/postfix-nirvana-parte-i/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Linux Day 2005: avanti così, tra novità e vecchie glorie</title>
		<link>http://bglug.it/2008/06/08/linux-day-2005-avanti-cosi-tra-novita-e-vecchie-glorie/</link>
		<comments>http://bglug.it/2008/06/08/linux-day-2005-avanti-cosi-tra-novita-e-vecchie-glorie/#comments</comments>
		<pubDate>Sun, 08 Jun 2008 12:04:24 +0000</pubDate>
		<dc:creator>Mangia</dc:creator>
				<category><![CDATA[Documentazione]]></category>
		<category><![CDATA[Linux Day]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Vintage docs]]></category>
		<category><![CDATA[2005]]></category>
		<category><![CDATA[distribuzioni]]></category>
		<category><![CDATA[espressioni regolari]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mediawiki]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[origini]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[spazio]]></category>
		<category><![CDATA[wikipedia]]></category>

		<guid isPermaLink="false">http://bglug.it/?p=62</guid>
		<description><![CDATA[Durante il Linux Day 2005 sono stati affrontati, al solito, argomenti di varia natura: la consueta panoramica su Linux e le distribuzioni ha visto comparire qualche nome nuovo, mentre in altri interventi si parlava di networking sicuro, di espressioni regolari, ma anche di Wikipedia e di tutti i possibili utilizzi di Linux&#8230; dalle origini allo [...]]]></description>
			<content:encoded><![CDATA[<p>Durante il <strong>Linux Day 2005</strong> sono stati affrontati, al solito, argomenti di varia natura: la consueta panoramica su Linux e le distribuzioni ha visto comparire qualche nome nuovo, mentre in altri interventi si parlava di networking sicuro, di espressioni regolari, ma anche di Wikipedia e di tutti i possibili utilizzi di Linux&#8230; dalle origini allo spazio!</p>
<p><span id="more-62"></span>Ecco i pdf delle presentazioni:</p>
<p><a href="http://bglug.it/wp-content/uploads/2008/06/02-le-distribuzioni-linux.pdf">Le distribuzioni Linux (di Marco Salvi)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/06/03-linux-dalle-origini-allo-spazio1.pdf">Linux dalle origini allo spazio (di Antonio Milesi)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/06/04-networking-sicuro.pdf">Networking sicuro (di Marco Balduzzi)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/06/06-wikipedia.pdf">Wikipedia e Mediawiki: il progetto e la piattaforma (di Ermanno Novali)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/06/07-espressioni-regolari.pdf">Alla scoperta delle Espressioni Regolari (di Flavio Castelli)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/06/08/linux-day-2005-avanti-cosi-tra-novita-e-vecchie-glorie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Day 2004: la rievocazione storica continua</title>
		<link>http://bglug.it/2008/05/06/linux-day-2004-la-rievocazione-storica-continua/</link>
		<comments>http://bglug.it/2008/05/06/linux-day-2004-la-rievocazione-storica-continua/#comments</comments>
		<pubDate>Tue, 06 May 2008 10:01:46 +0000</pubDate>
		<dc:creator>Mangia</dc:creator>
				<category><![CDATA[Diritto]]></category>
		<category><![CDATA[Documentazione]]></category>
		<category><![CDATA[Linux Day]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Vintage docs]]></category>
		<category><![CDATA[2004]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[compilazione]]></category>
		<category><![CDATA[crittografia]]></category>
		<category><![CDATA[distribuzioni]]></category>
		<category><![CDATA[e-learning]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[sicurezza]]></category>

		<guid isPermaLink="false">http://bglug.it/?p=55</guid>
		<description><![CDATA[Prosegue la raccolta di materiale dagli archivi del vecchio sito del BGlug. Oggi vi propongo i materiali relativi al Linux Day 2004. Ecco cosa potete scaricare: Sicurezze e False Sicurezze &#8211; Un confronto aperto tra modelli &#8220;free&#8221; e &#8220;proprietari&#8221; (di Stefano Zanero) Introduzione alla programmazione in ambiente GNU/Linux con particolare riferimento al linguaggio C (di [...]]]></description>
			<content:encoded><![CDATA[<p>Prosegue la raccolta di materiale dagli archivi del vecchio sito del BGlug. Oggi vi propongo i materiali relativi al Linux Day 2004.</p>
<p><span id="more-55"></span></p>
<p>Ecco cosa potete scaricare:</p>
<p><a href="http://bglug.it/wp-content/uploads/2008/05/beamer.pdf">Sicurezze e False Sicurezze &#8211; Un confronto aperto tra modelli &#8220;free&#8221; e &#8220;proprietari&#8221; (di Stefano Zanero)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/05/coding.pdf">Introduzione alla programmazione in ambiente GNU/Linux con particolare riferimento al linguaggio C (di Marco Balduzzi)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/05/crittografia.pdf">La crittografia al servizio di Linux, conservare in maniera sicura i propri dati (di Flavio Castelli)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/05/distro.pdf">Introduzione alle distribuzioni (di Marco Salvi)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/05/elearning.pdf">E-learning &amp; Opensource (di Samuele E. Locatelli)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/05/linux.pdf">Compilazione del Kernel Linux 2.6.x (di Ermanno Novali)</a></p>
<p><a href="http://bglug.it/wp-content/uploads/2008/05/opensource.pdf">La sﬁda dell’Open Source (di Roberto &#8220;Jimmi&#8221; Franceschini)</a></p>
<p>Buona lettura!</p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/05/06/linux-day-2004-la-rievocazione-storica-continua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tagsistant: un filesystem semantico per Linux</title>
		<link>http://bglug.it/2008/04/18/tagsistant-un-filesystem-semantico-per-linux/</link>
		<comments>http://bglug.it/2008/04/18/tagsistant-un-filesystem-semantico-per-linux/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 13:52:09 +0000</pubDate>
		<dc:creator>Mangia</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[FUSE]]></category>
		<category><![CDATA[semantic web]]></category>
		<category><![CDATA[taggin]]></category>
		<category><![CDATA[Tagsistant]]></category>

		<guid isPermaLink="false">http://bglug.it/2008/04/18/tagsistant-un-filesystem-semantico-per-linux/</guid>
		<description><![CDATA[Segnalo un progetto interessante basato sulle librerie FUSE che potrebbe giovare a chi è particolarmente interessato alla semantica e al tagging dei documenti. Di che si tratta? Riporto dal sito, traduzione mia: Si tratta di Tagsistant (o anche tagfs), che &#8220;utilizza FUSE per interfacciarsi con il kernel, usando un albero del filesystem nativo per immagazzinare [...]]]></description>
			<content:encoded><![CDATA[<p>Segnalo un progetto interessante basato sulle librerie <a href="http://fuse.sourceforge.net/" title="libfuse">FUSE</a> che potrebbe giovare a chi è particolarmente interessato alla semantica e al tagging dei documenti.</p>
<p><span id="more-54"></span></p>
<p>Di che si tratta? Riporto dal sito, traduzione mia:</p>
<p>Si tratta di <a href="http://www.tagsistant.net/" title="Tagsistant">Tagsistant (o anche tagfs)</a>, che &#8220;<em>utilizza FUSE per interfacciarsi con il kernel, usando un albero del filesystem nativo per immagazzinare le informazioni. Dentro quest&#8217;area del filesystem è presente una directory &#8220;archivio&#8221; che contiene file e un database SQLite che ne descrive le tag (&#8220;etichette&#8221;, implementate come altre directory).<br />
Mettere una tag ad un file significa di fatto aggiungere nel database l&#8217;indicazione dell&#8217;etichetta associata al file stesso.<br />
Tagsistant si occupa di rendere questa operazione automatica, senza importunare l&#8217;utente, quando un nuovo file viene creato, attraverso la sua copia o il suo spostamento tra le directory. (Questo significa che creare un link simbolico o copiare integralmente un file è di fatto la stessa cosa per Tagsistant).</em>&#8221;</p>
<p>A <a href="http://www.tagsistant.net/browser.plp">questa pagina</a> è possibile rendersi meglio conto di come il sistema funzioni attraverso una demo interattiva.</p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/04/18/tagsistant-un-filesystem-semantico-per-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Day 2003: ecco qualche reperto storico</title>
		<link>http://bglug.it/2008/04/09/linux-day-2003-ecco-qualche-reperto-storico/</link>
		<comments>http://bglug.it/2008/04/09/linux-day-2003-ecco-qualche-reperto-storico/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 09:18:48 +0000</pubDate>
		<dc:creator>Mangia</dc:creator>
				<category><![CDATA[Diritto]]></category>
		<category><![CDATA[Documentazione]]></category>
		<category><![CDATA[Linux Day]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Vintage docs]]></category>
		<category><![CDATA[2003]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[distribuzioni]]></category>
		<category><![CDATA[GIMP]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[matematica]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[OpenOffice.org]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[scienze]]></category>
		<category><![CDATA[sicurezza]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[wxWindows]]></category>
		<category><![CDATA[xbox]]></category>

		<guid isPermaLink="false">http://bglug.it/2008/04/09/linux-day-2003-ecco-qualche-reperto-storico/</guid>
		<description><![CDATA[Dagli archivi del vecchio sito web del nostro amato LUG ecco riemergere un po&#8217; di documentazione&#8230; Si tratta dei pdf contenenti slide e documenti testuali utlizzati durante il Linux Day 2003. Gli argomenti trattati spaziano in molteplici settori, eccovi un elenco dei documenti disponibili per il download: una panoramica su Linux e sulle distribuzioni (di [...]]]></description>
			<content:encoded><![CDATA[<p>Dagli archivi del vecchio sito web del nostro amato LUG ecco riemergere un po&#8217; di documentazione&#8230; Si tratta dei pdf contenenti slide e documenti testuali utlizzati durante il <strong>Linux Day 2003</strong>.</p>
<p><span id="more-42"></span></p>
<p>Gli argomenti trattati spaziano in molteplici settori, eccovi un elenco dei documenti disponibili per il download:</p>
<ul>
<li><a title="una panoramica su Linux e sulle distribuzioni (di Marco Salvi);" href="http://bglug.it/wp-content/uploads/2008/04/distribuzioni.pdf">una panoramica su Linux e sulle distribuzioni (di Marco Salvi)</a>;</li>
<li><a title="GIMP, il celebre software di manipolazione di immagini (di Samuele E. Locatelli)" href="http://bglug.it/wp-content/uploads/2008/04/gimp.pdf">GIMP, il celebre software di manipolazione di immagini (di Samuele E. Locatelli)</a>;</li>
<li><a title="GUI - le interfacce grafiche per i sistemi Linux (di Giuseppe Ravasio)" href="http://bglug.it/wp-content/uploads/2008/04/linux-gui.pdf">GUI &#8211; le interfacce grafiche per i sistemi Linux (di Giuseppe Ravasio)</a>;</li>
<li><a title="gli strumenti per le scienze messi a disposizione dal movimento Open Source (di Samuele E. Locatelli)" href="http://bglug.it/wp-content/uploads/2008/04/matematicatar.bz2">gli strumenti per le scienze messi a disposizione dal movimento Open Source (di Samuele E. Locatelli)</a>;</li>
<li><a title="OpenOffice.org,  la suite open per la produttività (di Antonio Milesi)" href="http://bglug.it/wp-content/uploads/2008/04/openoffice.pdf">OpenOffice.org,  la suite open per la produttività (di Antonio Milesi)</a>;</li>
<li><a title="una panoramica sul Kernel Linux (di Luca Amigoni)" href="http://bglug.it/wp-content/uploads/2008/04/panoramica_kernel.pdf">una panoramica sul Kernel Linux (di Luca Amigoni)</a>;</li>
<li><a title="La samba ballata da Mr. Linux (di Gabriele Galliani)" href="http://bglug.it/wp-content/uploads/2008/04/samba.pdf">La samba ballata da Mr. Linux (di Gabriele Galliani)</a>;</li>
<li><a title="la sicurezza nei sistemi Linux (di Marco Balduzzi)" href="http://bglug.it/wp-content/uploads/2008/04/sicurezza.pdf">la sicurezza nei sistemi Linux (di Marco Balduzzi)</a>;</li>
<li><a title="un server proxy open source: Squid (di Marco Morosini)" href="http://bglug.it/wp-content/uploads/2008/04/squid.pdf">un server proxy open source: Squid (di Marco Morosini)</a>;</li>
<li><a title="WxWindows: un framework per realizzare applicazioni con interfaccia utente nativa (di Marco Cavallini)" href="http://bglug.it/wp-content/uploads/2008/04/wxwindows.pdf">WxWindows: un framework per realizzare applicazioni con interfaccia utente nativa (di Marco Cavallini)</a>;</li>
<li><a title="Un pinguino in salotto - Linux su console (di Flavio Castelli)" href="http://bglug.it/wp-content/uploads/2008/04/xbox.pdf">Un pinguino in salotto &#8211; Linux su console (di Flavio Castelli)</a>.</li>
</ul>
<p>Buona lettura!</p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/04/09/linux-day-2003-ecco-qualche-reperto-storico/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Un server in un miniPC</title>
		<link>http://bglug.it/2008/03/22/un-server-in-un-minipc/</link>
		<comments>http://bglug.it/2008/03/22/un-server-in-un-minipc/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 06:22:09 +0000</pubDate>
		<dc:creator>jimmi</dc:creator>
				<category><![CDATA[Documentazione]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://bglug.it/2008/03/22/un-server-in-un-minipc/</guid>
		<description><![CDATA[Da diverso tempo stavo meditando sulla sostituzione del mio server casalingo, a cui mancavano due requisiti per me molto importanti: un RAID1 che mi salvi dalla morte improvvisa di un disco e consumi ridotti. Qualche mese fa ho finalmente avviato il progetto, la cui esperienza voglio ora condividere con voi. Acquisti Dopo alcune ricerche in [...]]]></description>
			<content:encoded><![CDATA[<p>Da diverso tempo stavo meditando sulla sostituzione del mio server casalingo, a cui mancavano due requisiti per me molto importanti: un <em>RAID1</em> che mi salvi dalla morte improvvisa di un disco e consumi ridotti. Qualche mese fa ho finalmente avviato il progetto, la cui esperienza voglio ora condividere con voi.</p>
<p style="text-align: center"><a href="http://bglug.it/wp-content/uploads/2008/03/01esterno.jpg" title="Fronte"><img src="http://bglug.it/wp-content/uploads/2008/03/01esterno.thumbnail.jpg" alt="Fronte" /></a></p>
<p><span id="more-37"></span></p>
<h3><a title="acquisti" name="acquisti"></a>Acquisti</h3>
<p>Dopo alcune ricerche in rete mi sono deciso per la seguente configurazione:</p>
<ul>
<li><strong>Scheda madre</strong>: Intel <a href="http://www.intel.com/products/motherboard/d201gly2/" title="Intel">D201GLY2A</a></li>
<li><strong>Case</strong>: Mini-Box <a href="http://www.mini-box.com/Mini-Box-M300">M300</a></li>
<li><strong>RAM</strong>: Kingston <a href="http://www.valueram.com/datasheets/KVR533D2N4_1G.pdf">1GB 533MHz DDR2</a></li>
<li><strong>Hard Disks</strong>: n. 2 Samsung <a href="http://www.samsung.com/global/business/hdd/productmodel.do?group=72&amp;type=62&amp;subtype=67&amp;model_cd=298">M5S HM160HI</a></li>
<li><strong>Alimentazione</strong>: Mini-Box <a href="http://www.mini-box.com/s.nl/it.A/id.417/.f?sc=8">picoPSU 120</a> + Sintel <a href="http://http://www.shopelectronic.it/product.asp?Id=14507">8500mA 12Vcc</a></li>
</ul>
<p>Per recuperare i materiali necessari ho dovuto farmi un ampio giro tra i negozi on-line, con risultati discordanti. Se non altro l&#8217;esperienza mi ha permesso di stilare una mini classifica che riporto di seguito:</p>
<h4>Super, compro ancora!</h4>
<ul>
<li><a href="http://cartft.de/" title="CarTFT">CarTFT.com</a></li>
<li><a href="http://www.totalmodding.com/" title="Totalmodding">Totalmodding</a></li>
<li><a href="http://www.shopelectronic.it/" title="Shopelectronic">Sintel</a></li>
</ul>
<h4>Onesto</h4>
<ul>
<li><a href="http://www.smartprice.it/" title="SmartPrice">SmartPrice</a></li>
</ul>
<h4>Inaffidabile</h4>
<ul>
<li><a href="http://mini-itx.it/" title="Mini-ITX">Mini-ITX</a></li>
</ul>
<h4>Da scampare come la peste</h4>
<ul>
<li><a href="http://www.wireshop.it/" title="Wireshop">Wireshop</a></li>
</ul>
<h3><a title="hardware" name="hardware"></a>Assemblare l&#8217;hardware</h3>
<p>Dopo tre giorni ricevo dal sito tedesco il case, la mobo e l&#8217;alimentatore <em>PicoPSU</em>, la qual cosa mi fa sperare in una rapida conclusione. In realtà gli ultimi componenti mi arriveranno dopo quasi quattro settimane, durante le quali ho il tempo di pentirmi di alcune scelte:</p>
<ul>
<li>Il <em>case</em> <em>M300</em>, che ho scelto per le ridotte dimensioni, permette di alloggiare solo ventole da 40 mm, spesso rumorose. <em>Case</em> leggermente più alti permettono di alloggiare ventole da 80 mm, molto più silenziose e facili da reperire.</li>
<li>La <em>PicoPSU</em> che ho scelto richiede un alimentatore con tensione fissa da 12V, mentre la maggior parte degli alimentatori per portatili in commercio partono da un minimo di 15V. Per pochi euro in più potevo avere <a href="http://www.mini-box.com/PicoPSU-120-WI-25-12-25V-DC-DC-ATX-power-supply;jsessionid=0a0002421f431b0ea872fe58402c9c32ba901a2b6f18.e3eSc38LcheTe34Pa38Ta38Qbxf0?sc=8&amp;category=13" title="Mini-box">il modello</a> che accetta tensioni fino a 25V</li>
<li>La mobo della Intel è buona ed economica, ma consuma leggermente di più rispetto alle <a href="http://www.via.com.tw/en/products/mainboards/motherboards.jsp?motherboard_id=21" title="VIA EPIA-Series">VIA</a>, circa 10W, e richiede una seconda alimentazione tramite uno spinotto tipo <em>ATX4P</em>. Questo causa maggior calore da dissipare e la necessità attaccare al <em>PicoPSU</em> uno sdoppiatore con <a href="http://wireshop.it/img_prod/Supplier_1/Big/6826_1b.jpg">un adattatore</a> di non facile reperimento.</li>
</ul>
<p>A parte queste note l&#8217;assemblaggio non ha riservato grosse sorprese. Il <em>case</em>, anche se di dimensioni ridotte, si è rivelato adatto allo scopo. Dopo aver cercato inutilmente di avere da <a href="http://wireshop.it/prodotti/cd_73040" title="Wireshop">Wireshop</a> l&#8217;adattatore per <em>ATX4P</em>, mi sono deciso a costruirmelo in casa recuperando la spinetta da un vecchio alimentatore <em>ATX</em>. Ho inoltre scoperto che in <a href="http://www.endpcnoise.com/e/images/items/sata_power_adapter.jpg">molti adattatori</a> in commercio le spine di alimentazione <em>SATA</em> agganciano i cavi in comodissimi attacchi a baionetta che rendono semplice la sostituzione di spine <em>MOLEX</em> eventualmente esistenti.</p>
<p>Dopo alcune settimane di ricerca infruttuosa di un alimentatore per portatili con uscita 12VCC mi sono deciso a comprarne uno dalla <a href="http://www.shopelectronic.it/product.asp?Id=14507" title="Shopelectronic.it">Sintel</a>, che mi ha servito in maniera impeccabile. Peccato che il mattino dopo abbia trovato ben due alimentatori equivalenti alla metà del prezzo: la legge di Murphy non lascia scampo.</p>
<p>L&#8217;ulltimo scoglio che ho dovuto superare è stata la rumorosità: purtroppo la ventolina della <em>CPU</em> montata dalla Intel è discretamente rumorosa, e la dimensione di 40 mm non lascia molte chances. <a href="http://www.totalmodding.com/index.php?cPath=191_644" title="Totalmodding">Totalmodding</a> offre diverse ventole adatte, ma purtroppo il primo tentativo con quella più lenta e silenziosa porta la temperatura della <em>CPU</em> sopra i settanta gradi. Installo quindi il modello più veloce e la temperatura si assesta intorno ai sessanta gradi, anche se l&#8217;apparecchio non è silenzioso come speravo.</p>
<p style="text-align: center"><a href="http://bglug.it/wp-content/uploads/2008/03/04interno.jpg" title="Interno"><img src="http://bglug.it/wp-content/uploads/2008/03/04interno.thumbnail.jpg" alt="Interno" height="136" width="136" /></a></p>
<h3><a title="software" name="software"></a>Installare il software</h3>
<p>Il mio gioiellino è ora pronto. I servizi che ho intenzione di attivare sono:</p>
<ul>
<li><em>RAID1</em> e backup incrementale</li>
<li>Accesso remoto via <em>SSH</em> e <em>VNC</em></li>
<li>Server stampa e scansione</li>
<li>Server di posta con <em>imap</em> e <em>webmail</em></li>
<li><em>Disk sharing</em> con <em><a href="http://us1.samba.org/">Samba</a></em></li>
<li>Server <em>LAMP</em></li>
<li>Client <a href="http://mldonkey.org/" title="MLDonkey" target="_blank"><em>MLDonkey</em></a></li>
</ul>
<p>Ovviamente il tutto eseguito con software libero disponibile  tramite <a href="http://it.wikipedia.org/wiki/GNU_Linux" title="Wikipedia">GNU/Linux</a>, e la scelta della distribuzione casca senza ripensamenti su <a href="http://www.us.debian.org/releases/stable/" title="Debian">Debian stable</a>, che offre da diversi anni gli stessi servizi sul predecessore. Le maggiori fonti di ispirazione per tutte le configurazioni sono stati il <a href="http://guide.debianizzati.org/">wiki di Debianizzati</a> e <a href="http://www.debian-administration.org/">Debian Administration Resources</a>.</p>
<h4>Kernel e RAID1</h4>
<p>Dopo l&#8217;installazione dei soli pacchetti di base e l&#8217;aggiornamento con un repository internet, la prima operazione che ho eseguito è stata la compilazione di un kernel monolitico, ovviamente alla <a href="http://guide.debianizzati.org/index.php/Debian_Kernel_Howto" title="Debianizzati">maniera Debian</a>. <a href="http://bglug.it/wp-content/uploads/2008/03/config.txt" title=".config">Qui</a> potete trovare il <em>.config</em> da me utilizzato per la bisogna.</p>
<p>Purtroppo mi sono accorto che i sensori di temperatura di questa scheda, relativamente nuova, non sono supportati dal kernel della stable, quindi ho dovuto scaricare il sorgente del kernel 2.6.22 dai <a href="http://backports.org/" title="Debian Backports">backports</a> e <a href="http://lists.lm-sensors.org/pipermail/lm-sensors/2007-December/022232.html" title="lm-sensors">applicare una patch</a> per poter visualizzare le temperature con <a href="http://lm-sensors.org/" title="lm-sensors">lm-sensors</a>.</p>
<p>L&#8217;operazione successiva è stata la creazione del <em>RAID1</em>: anche in questo caso Debianizzati mi è venuto in aiuto con <a href="http://guide.debianizzati.org/index.php/Software_Raid_1:_configurazione_e_verifiche" title="Debianizzati">una guida</a> semplice e dettagliata. ed in poco tempo il sistema è funzionante.</p>
<h4>Servizi interni</h4>
<p>Solo a questo punto ho iniziato l&#8217;installazione dei programmi aggiuntivi che mi servivano, badando bene ad evitare l&#8217;installazione di pacchetti inutili.</p>
<p>Per prima cosa ho installato <em><a href="http://guide.debianizzati.org/index.php/Ssh_e_autenticazione_tramite_chiavi" title="Debianizzati">OpenSSH</a></em> e abilitato una <a href="http://tldp.org/HOWTO/Remote-Serial-Console-HOWTO/index.html" title="Remote Serial Console Howto">console seriale</a>. Questo mi ha permesso di eliminare definitivamente tastiera e monitor e proseguire l&#8217;installazione comodamente collegato dal mio portatile, o anche dal lavoro durante la pausa pranzo. La console seriale mi permette inoltre di intercettare ed eventualmente correggere eventuali problemi in fase di boot senza ricollegare le periferiche.</p>
<p>Modificando gli script di <a href="http://www.mikerubel.org/computers/rsync_snapshots/" title="Mike's place">Mike</a> è molto semplice abilitare un backup incrementale giornaliero o settimanale. Calibrando opportunamente la frequenza e le directory interessate riesco a far stare in 5 GB un backup delle cose importanti (SO, configurazioni, Mail e sito web) fino ad un mese indietro.</p>
<p>La configurazione di un server mail con <em>fetchmail</em>, <em>postfix</em>, <em>procmail</em> e <em>uw-imaps</em> è banale seguendo uno qualsiasi dei molti howto che si possono trovare in rete. Il <a href="http://www.mrshark.it/qechowto/index.html" title="MrShark">Quick&amp;Easy Configuration HOWTO</a> di Antonio Fragola, nonostante sia datato, rimane uno dei documenti più adatti allo scopo. L&#8217;obiettivo è scaricare la posta dai vari account internet distribuendola nelle varie caselle degli utenti, i quali possono accedere ad esse sul server con qualunque client vogliano usare.</p>
<p>Le note particolari della mia installazione sono l&#8217;utilizzo di <em>Freepops</em> per accedere alle mail di inwind e libero, la cui versione aggiornata deve essere scaricata dai repository dei <a href="http://backports.org/" title="Debian Backports">backports</a>, e l&#8217;utilizzo di <em>Clamav</em> dai repository &#8216;<em>volatile</em>&#8216;, come suggerito da <a href="http://www.debian-administration.org/articles/259" title="Debian Administration">Debian Administration</a>.</p>
<p>Installando <em><a href="http://guide.debianizzati.org/index.php/Installare_stampanti_con_porta_USB_utilizzando_CUPS" title="Debianizzati">CUPS</a></em> e <em><a href="http://www.sane-project.org/" title="SANE">SANE</a></em> posso <a href="http://www.cups.org/doc-1.1/sam.html#CLIENT_AUTO">avere</a> sia la stampante che lo scanner funzionanti e disponibili anche per i client in rete. Ovviamente devo <a href="http://penguin-breeder.org/sane/saned/" title="SANE Network Daemon">spiegare</a> ai <a href="http://www.linux-foundation.org/~till/printing-tutorial/tut.html#1_3" title="CUPS Printing Setup">demoni</a> quale rete servire, e ai <a href="http://www.cups.org/doc-1.1/sam.html#6_1" title="CUPS Administrators manual">client</a> da quale server ascoltare.</p>
<p>Configurando <a href="http://www.pictux.org/forum/viewtopic.php?t=5" title="PicTux"><em>Samba</em> con <em>LDAP</em></a> la gestione degli utenti del dominio viene molto semplificata, ed anche gli eventuali client Windows si sentono come a casa loro.</p>
<h4>Servizi sul web</h4>
<p>Posso ora passare ai servizi aperti sul web. A pochi minuti dall&#8217;installazione <em><a href="http://mldonkey.org/" title="MLDonkey">MLDonkey</a></em> comincia allegramente a scaricare e condividere con altri <em>peer</em> le mie cartelle condivise. Devo avere l&#8217;accortezza di aprire sul router le porte corrispondenti ai protocolli che intendo usare: <em>eDonkey</em>, <em>Gnutella</em>, <em>FastTrack</em>, <em>Bittorrent</em> e quant&#8217;altro.</p>
<p>L&#8217;installazione dei server <em>LAMP</em> e la relativa configurazione è cosa veloce seguendo i <a href="http://guide.debianizzati.org/index.php/LAMP:_Linux%2C_Apache%2C_MySQL_e_PHP" title="Debianizzati">consigli di Debianizzati</a>; una volta concluso mi basta copiare gli archivi di <em>WordPress</em>, eseguire un ripristino del database, <a href="http://guide.debianizzati.org/index.php/LAMP:_Linux%2C_Apache%2C_MySQL_e_PHP#Siti" title="Debianizzati">abilitare il sito</a> su apache ed <a href="http://7girello.net/" title="Il Blog di Jimmi">il mio blog</a> fa bella mostra di se su internet.</p>
<p>Anche l&#8217;installazione e la configurazione di <em>OpenVPN</em> si è rivelata abbastanza semplice, seguendo la <a href="http://www.debian-administration.org/articles/489" title="Debian Administration">guida di Debian Administration</a>. In questo modo da qualunque parte mi trovo posso accedere in modo sicuro ai servizi della mia rete, inclusa l&#8217;interfaccia web di <em>MLDonkey</em>.</p>
<p>La ciliegina finale è stata l&#8217;abilitazione di una webmail con <em><a href="http://squirrelmail.org/">Squirrelmail</a></em> accessibile su una connessione sicura dal web, sulla cui configurazione ho scritto un&#8217;altro <a href="http://bglugvs.web3king.com/?p=93">manualetto</a> disponibile sul blog del <em><a href="http://bglugvs.web3king.com/">BGLug VS</a></em>.</p>
<p style="text-align: center"><a href="http://bglug.it/wp-content/uploads/2008/03/02esterno.jpg" title="Retro"><img src="http://bglug.it/wp-content/uploads/2008/03/02esterno.thumbnail.jpg" alt="Retro" /></a></p>
<h3><a title="conclusioni" name="conclusioni"></a>Conclusioni</h3>
<p>Dieci anni fa non avrei preso sul serio chiunque mi avesse detto che con poco più di trenta watt e una scatoletta grande come un&#8217;autoradio si potesse realizzare tutto questo. Oggi questo l&#8217;ho fatto io, con il supporto di molti sconosciuti che scrivono <a href="http://it.wikipedia.org/wiki/Software_libero" title="Wikipedia">software libero</a> ed aiutano gli utenti con manuali e mailing lists.</p>
<p>Mio padre, tra i tanti buoni consigli che mi ha dato, mi ripeteva sempre <em>&#8220;Nessuno fa niente per niente&#8221;</em>. Ora posso dire: <em>&#8220;Papà ti sbagli!&#8221;</em>. C&#8217;è un sacco di gente là fuori che fa delle cose per il solo gusto di farle bene, ed è felice di condividerle con chiunque condivida la loro passione. Voglio ringraziare quindi tutte queste persone, e spero che queste mie pagine possano dare un piccolo contributo a tutto ciò.</p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/03/22/un-server-in-un-minipc/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Ubuntu/Kubuntu/Xubuntu su EeePC 701</title>
		<link>http://bglug.it/2008/03/20/ubuntukubuntuxubuntu-su-eeepc-701/</link>
		<comments>http://bglug.it/2008/03/20/ubuntukubuntuxubuntu-su-eeepc-701/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 20:23:21 +0000</pubDate>
		<dc:creator>emuboy</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://bglug.it/2008/03/20/ubuntukubuntuxubuntu-su-eeepc-701/</guid>
		<description><![CDATA[L&#8217;Asus EeePC 701 è un portatile a basso costo di casa Asus. Nato come progetto per le scuole medie, si è rivelato poi come uno dei prodotti più famosi della Asus degli ultimi tempi: la sua potenza ridotta (processore da 600MHz, 512Mb di RAM, da 2 a 8 Gb di memoria a stato solido e [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bglug.it/wp-content/uploads/2008/03/p1030294.jpg" title="eeePC con Kubuntu"></a></p>
<p style="text-align: center"><a href="http://bglug.it/wp-content/uploads/2008/03/p1030294.jpg" title="eeePC con Kubuntu"><img src="http://bglug.it/wp-content/uploads/2008/03/p1030294.thumbnail.jpg" alt="eeePC con Kubuntu" /></a></p>
<p>L&#8217;<strong><em>Asus EeePC 701</em></strong> è un portatile a basso costo di casa Asus. Nato come progetto per le scuole medie, si è rivelato poi come uno dei prodotti più famosi della Asus degli ultimi tempi: la sua potenza ridotta (processore da 600MHz, 512Mb di RAM, da 2 a 8 Gb di memoria a stato solido e schermo da 7 pollici) è ben compensata dal suo costo (299 Euro) e dalle sue dimensioni ridotte (225x165x21). L&#8217;EeePC monta una distribuzione Linux di default, <em>Xandros</em>, personalizzata in modo da essere facile da usare e da gestire senza troppe limitazioni. Putroppo Xandros non è standard, ragion per cui in questa guida tratteremo l&#8217;installazione di qualsiasi distribuzione Ubuntu-based su EeePC.</p>
<p><span id="more-35"></span></p>
<h3>Ingredienti:</h3>
<ul>
<li>EeePC</li>
<li>Lettore CD/DVD esterno (è comunque utile recuperarne uno, in quanto l&#8217;EeePC non ha lettore CD)</li>
<li>Qualsiasi periferica di archiviazione di massa da 2Gb o superiore (solo nel caso in cui non procederete all&#8217;eliminazione di Xandros dalla memoria interna)</li>
<li>Questo <a href="http://eee-ubuntu-support.googlecode.com/files/eee-ubuntu-support_v0.7.tgz">file</a> da <a href="http://code.google.com/p/eee-ubuntu-support/">questo progetto</a> su una chiave usb o altro.</li>
</ul>
<h3>Cominciamo:</h3>
<p>La prima cosa da fare è salvare eventuali dati presenti sull&#8217;EeePC: vi consiglio di farlo anche se avete deciso di installare tutto su una chiavetta o una scheda SD. Poi bisogna considerare il tipo di installazione che vogliamo fare: interna o esterna. Considerate che la memoria interna è da 2Gb, 4Gb o 8Gb: può bastare per il solo sistema, limita parecchio l&#8217;installazione di nuovi programmi ma fornisce una velocità maggiore. Diversamente, l&#8217;installazione su periferica esterna preserva  Xandros (ripristinabile comunque grazie al CD che trovate nella confezione)   e offre una ampiezza del disco limitata solo dall&#8217;ampiezza del vostro portafogli <img src='http://bglug.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ma può presentare limiti di velocità e può essere scomoda per via del lettore di schede che rimane sempre occupato in caso di installazione su SD oppure di un eventuale chiave USB che deve rimanere sempre inserita. Io ho optato per l&#8217;installazione su disco interno. Qualsiasi sia la vostra scelta, l&#8217;unica modifica da fare sarà forse solo il GRUB, ma riprendermo questo tra poco.</p>
<ul>
<li>Per prima cosa collegate il lettore CD esterno con dentro la vostra distribuzione *ubuntu preferita, nel mio caso una Kubuntu 7.10, e l&#8217;eventuale periferica di massa su cui andrete ad installare;</li>
<li>all&#8217;avvio del computer premete [Esc] che vi mostrerà il menù di boot e scegliete il lettore CD. Vedrete la schermata di boot e scegliete <em>Installazione</em>. In questa guida non tratteremo l&#8217;installazione di Ubuntu, ma potrete consultarne una <a href="http://wiki.ubuntu-it.org/Installazione/Grafica">qui</a>, in quanto potrete procedere all&#8217;installazione come un normalissimo PC. Se la bassa risoluzione dello schermo vi dà problemi con le finestre sicuramente vi sarà utile sapere che tenendo premuto il tasto [Alt ] potete trascinare le finestre in quasi tutti i windows manager moderni. Installate Ubuntu dove più vi aggrada e riavviate.</li>
<li>Se l&#8217;installazione parte senza problemi saltate questo punto. In caso contrario, è probabile che GRUB abbia un riferimento sbagliato sulla partizione da avviare. Quando esce il conto alla rovescia premete [Esc], selezionando la prima riga che vi mostra premete [E] e ancora [E] sula riga che inizia con <em>&#8220;root&#8221;</em>. A questo punto dovreste poter modificare la linea: quello che ci interessa è il paramentro <em>&#8220;(hd0,0)&#8221;</em>. Cancellatelo fino ad avere <em>&#8220;(hd&#8221;</em> e  premete [TAB]: la riga vi mostrerà alcune opzioni. Sceglietene una continuando il completamento con [TAB] e premete [B] per avviare, provate finchè non trovate quella giusta.</li>
<li>A sistema avviato loggatevi e copiate <a href="http://code.google.com/p/eee-ubuntu-support/">il file</a>  sulla scrivania, decomprimetelo e aprite una shell tramite il vostro terminale preferito. Entrate nella directory del file decompresso prima e battete
<pre><code>sudo ./install all
</code></pre>
<p>Inserite la vostra password e attendete che abbia finito: questo script installa vari moduli e fa alcune modifiche a dei file (leggete il README all&#8217;interno se siete curiosi). A questo punto riavviate e il vostro sistema dovrebbe funzionare alla perfezione: Wi-Fi, webcam, audio etc etc&#8230;</li>
</ul>
<p>Il consiglio che vi do è di sostituire eventuali programmi come OpenOffice con alternative più leggere (AbiWord per esempio) oppure di sfruttare, dove potete, servizi di webapps come GoogleDocs che vi permettono di non occupare spazio prezioso. Soprattuto vi consiglio di ridurre i font a 8 per tutto il sistema se i vostri occhi ve lo permettono&#8230; Buon diverimento sul vostro sistema e benvenuti nel mondo OpenSource se per voi è la prima volta&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/03/20/ubuntukubuntuxubuntu-su-eeepc-701/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Samba, cups e il click&#8217;n&#039;print</title>
		<link>http://bglug.it/2008/03/19/samba-cups-e-il-clicknprint/</link>
		<comments>http://bglug.it/2008/03/19/samba-cups-e-il-clicknprint/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 17:11:32 +0000</pubDate>
		<dc:creator>paolo</dc:creator>
				<category><![CDATA[Documentazione]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[printing]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://bglug.it/2008/03/19/samba-cups-e-il-clicknprint/</guid>
		<description><![CDATA[Noi utenti *nix abbiamo a disposizione un software meraviglioso: cups. Purtroppo a volte bisogna fare i conti anche con altre piattaforme meno evolute, dove stampare non è sempre facile (aggiorna i driver, condividi la stampante&#8230;). Ecco quindi come permettere agli utenti meno abbienti di stampare facilmente con il print server per definizione. Il &#8220;click&#8217;n'print&#8221; è [...]]]></description>
			<content:encoded><![CDATA[<p>Noi utenti *nix abbiamo a disposizione un software meraviglioso: cups.  Purtroppo a volte bisogna fare i conti anche con altre piattaforme meno evolute, dove stampare non è sempre facile (aggiorna i driver, condividi la stampante&#8230;). Ecco quindi come permettere agli utenti meno abbienti di stampare facilmente con il print server per definizione. <span id="more-34"></span>Il &#8220;click&#8217;n'print&#8221; è la feature che permette agli utenti windows di acquisire i drivers di una stampante condivisa in rete semplicemente &#8220;aprendola&#8221; come se fosse una semplice cartella. Il driver viene quindi scaricato dal computer che condivide la stampante e installato nel sistema.</p>
<p>Niente a che vedere con cups, che scopre per i fatti suoi tutti gli altri server cups presenti nella rete e concede agli utenti locali di stampare su tutte le stampanti condivise senza installare drivers. Semplicemente perché non servono.Cups infatti gestisce i lavori di stampa con Postscript, indipendentemente dal linguaggio effettivamente utilizzato dalla stampante; sarà poi compito del server collegato fisicamente alla stampante di tradurre il flusso Postscript in un linguaggio comprensibile per la stampante.</p>
<p>Di conseguenza, al fine di permettere ad un sistema windows di stampare verso cups, bisogna &#8220;imporgli&#8221; di usare un driver che traduca il flusso di stampa GDI di windows in un flusso Postscript. Faremo questo inviando un driver Postscript (magari quello usato di default su windows, oppure quello del progetto cups) quando il client richiede a samba il driver di stampa.</p>
<h3>Prerequisiti:</h3>
<ul>
<li>samba (configurato e funzionante)</li>
<li>cups (idem, magari con una stampante condivisa)</li>
<li>uno o più client windows da cui stampare</li>
</ul>
<h3>Configurazione di samba: </h3>
<p>Se cups è installato e funzionante, normalmente (nelle distro moderne) samba presenta già le stampanti condivise da cups. In ogni caso riepilogo qui le direttive che devono essere presenti nel file /etc/samba/smb.conf:<br />
<code> </code></p>
<pre>[global]   load printers = yes   printing = cups   printcap name = cups[printers]   comment = Tutte le stampanti   path = /var/spool/samba   browseable = no   public = yes   guest ok = yes   writable = no   printable = yes   printer admin = paolo[print$]   path = /usr/share/cups/drivers   guest ok = no   browseable = yes   read only = yes   write list = paolo</pre>
<p>Giusto per fare chiarezza: la sezione [global] deve abilitare la stampa tramite cups, la sezione [printers] definisce il file di spool, mentre la sezione [print$] definisce uno share (o condivisione, che dir si voglia) contenente i drivers delle stampanti. Infatti ogni server windows che condivide una o più stampanti, possiede uno share nascosto (cioè il cui nome finisce per $) preposto alla condivisione dei driver delle stampanti. Da notare che questo share è in sola lettura, ma ci serve un utente (paolo in questo caso) con i diritti di scrittura, in modo da caricare i drivers. L&#8217;utente ha anche il permesso di amministrare le stampanti. Il percorso indicato, invece, punta direttamente ai drivers di cups.</p>
<p><strong>Attenzione</strong>: prima di ogni modifica a smb.conf fate sempre una copia.</p>
<p><strong>Attenzione2</strong>: dopo ogni modifica a smb.conf, eseguite:<br />
<code> </code></p>
<pre>testparm</pre>
<p>che validerà le vostre modifiche.</p>
<p><strong>Attenzione3</strong>: dopo ogni modifica a smb.conf, riavviate il servizio, altrimenti la modifica non sarà effettiva. Per riavviare samba:<br />
<code> </code></p>
<pre>sudo /etc/init.d/samba restart</pre>
<p><strong>Attenzione4</strong>: ricordatevi che l&#8217;utente (paolo) deve esistere sul vostro sistema, e deve avere una password riconosciuta da samba. Per impostare la password in samba:<br />
<code> </code></p>
<pre>sudo smbpasswd paolo</pre>
<p>e inserite una password decente.</p>
<h3>Ottenere i drivers:</h3>
<p>Difficilmente troverete sul vostro sistema linux le dll che vi servono per i driver Postscript <img src='http://bglug.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Bisogna quindi scaricarli da <a href="http://www.cups.org/windows/software.php" target="_blank">qui</a>. Decomprimete, entrate nella directory appena creata e date un<br />
<code> </code></p>
<pre>sudo make install</pre>
<p>Attenzione: su alcune distro potreste aver bisogno del pacchetto &#8220;<strong>libcupsys2-dev</strong>&#8221; per installare questi driver.</p>
<p>Ora vi servono i drivers Postscript di windows, colti direttamente da un sistema &#8220;volontario&#8221;: cercate in \windows\system32\spool\drivers\w32x86. Da qualche parte troverete i seguenti files:<font><tt><font face="Verdana, Arial, Helvetica" size="-1"><tt></tt></font></tt></font><br />
<code> </code></p>
<pre>ps5ui.dllpscript5.dllpscript.hlpscript.ntf</pre>
<p>copiateli in /usr/share/cups/drivers e modificate i nomi: convertiteli in minuscolo.</p>
<h3>Configurazione di cups:</h3>
<p>Supporremo qui di avere un server cups installato e funzionante, con almeno una stampante condivisa.L&#8217;utente (paolo) dovrà almeno temporaneamente poter scrivere sulla directory /usr/share/cups/drivers. Per cui:<br />
<code> </code></p>
<pre>sudo chmod 777 /usr/share/cups/drivers</pre>
<p>Potrete ripristinare i permessi in seguito. Ora viene la magia:<br />
<code> </code></p>
<pre>sudo cupsaddsmb -H localhost -U paolo -a -v</pre>
<p>con questo chiediamo a cups di pubblicare i driver delle stampanti condivise sul server &#8220;localhost&#8221; utilizzando l&#8217;utente &#8220;paolo&#8221; per accedere in lettura/scritttura alla condivisione &#8220;print$&#8221; (quella di default per i drivers di stampa di windows). Facciamo ripartire samba e cups, giusto per gradire&#8230;<br />
<code> </code></p>
<pre>sudo /etc/init.d/samba restartsudo /etc/init.d/cupsys restart</pre>
<p>E ora, dal client windows, accedete al server e aprite una stampante, i drivers dovrebbero caricarsi automagicamente!</p>
]]></content:encoded>
			<wfw:commentRss>http://bglug.it/2008/03/19/samba-cups-e-il-clicknprint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

