StefanoLaguardia.eu

[Guida]Realizziamo un server a basso costo per mail, torrent e condivisione files (Parte 4)

In questa quarta parte della guida completiamo la configurazione del server di posta elettronica. In particolare, procediamo con l’installazione del sistema di scaricamento della posta elettronica dalle attuali caselle che abbiamo in giro per il web con fetchmail; poi continueremo con la configurazione del sistema di webmail RoundCube ed infine con  lo spostamento della gestione delle mail in una directory del disco rigido esterno in modo da non mettere sotto sforzo la memoria in CF con continue scritture.

  • Installazione e configurazione di fetchmail in modalità demone

Fetchmail è il software che permette di scaricare la posta da server POP3 e IMAP (anche ssl) ed affidarla ad un locale MDA (mail delivery agent) al fine di distribuirla nelle caselle degli utenti locali. E’ possibile configurare fetchmail in due modalità: 1) come client; 2) come demone. La differenza consiste nel fatto che nel primo caso il software deve essere avviato ogni volta che vogliamo scaricare la posta da account esterni al server,mentre nel secondo caso fetchmail scaricherà ogni tot minuti dai vari accounts configurati. La differenza non è banale perchè configurando fetchmail come client dobbiamo, poi, configurare un cronjob per automatizzare il download. Nel nostro caso configuriamo il software come demone.

Iniziamo con l’installazione:

# apt-get install fetchmail

Poi andiamo ad editare uno dei files di configurazione in modo che fetchmail si avvii come demone. Apriamo, pertanto il file /etc/default/fetchmail e modifichiamo la riga “START_DAEMON=no” in:

START_DAEMON=yes

A questo punto salviamo il file ed usciamo dall’editor per aprire il file di configurazione delle caselle di posta da scaricare in locale. Dato che stiamo usando il software in modalità demone, dobbiamo creare ed editare il file fetchmailrc da inserire nella directory /etc.

Prima di tutto inseriamo in /etc/fetchmailrc alcuni dati per il funzionamento generico del server:

set daemon 300 # Scarica ogni 5 minuti
set syslog # log tramite syslog
set postmaster root
set no bouncemail

La sintassi per editare il suddetto fetchmailrc in modo da effettuare il download della posta prevede che per ogni account dal quale vogliamo scaricare, dobbiamo inserire una riga di configurazione:

poll <pop3.serveresterno.it> with proto POP3 user “nomeutente@serveresterno.it” there fetchall with password “password_utente_su_server_esterno>” is <utente_locale> here

E’ facile comprendere che la parte da editare è quella che vi ho riportato nei simboli “< >” e ” “. Inoltre, nella precedente riga ho riportato la configurazione per scaricare la posta tramite server POP3, ma se avessimo voluto usare il server IMAP sarebbe stato sufficiente sostituire POP3 con IMAP. E’ molto importante ricordare, poi, che <utente_locale> è sempre e comunque, per come abbiamo configurato il nostro server Postfix, il solo nome utente dell’user, privo di dominio!

Un discorso a parte va fatto se dobbiamo configurare il retrieve da un indirizzo su server POP3 o IMAP con supporto SSL. In tal caso deve essere inserito un ulteriore parametro e dovrete procurarvi almeno il fingerprint del certificato relativo al server dal quale dobbiamo scaricare la posta. Una volta procurato tale dato dovrete inserire una riga come questa:

poll <pop3.serveresterno.it> with proto POP3 user “nomeutente@serveresterno.it” there fetchall with password “password_utente_su_server_esterno>” is <utente_locale> here ssl sslfingerprint “fi:ng:er:pr:in:t”

Se ne avete l’opportunità potete anche scaricare il certificato in formato .pem ed usare quest’altra direttiva al posto del fingerprint:

poll <pop3.serveresterno.it> with proto POP3 user “nomeutente@serveresterno.it” there fetchall with password “password_utente_su_server_esterno>” is <utente_locale> here ssl sslcertpath “/dir/certificato/

Prima, però, di avviare fetchmail, nel caso di download del certificato SSL, dovrete lanciare questo comando:

# c_rehash /dir/certificato

Una volta terminata la configurazione di fetchmail possiamo procedere con l’attribuzione della proprietà del file fetchmailrc all’utente fetchmail e dei diritti limitati solo a tale utente:

# chown fetchmail /etc/fetchmailrc
# chmod 600 /etc/fetchmailrc

Adesso è tutto pronto per avviare il demone:

# /etc/init.d/fetchmail start

  • Installazione e configurazione del webmail client RoundCube

Ho scelto di usare questo client di posta via web perchè, nonostante la sua giovane età e la mancanza di alcune funzioni, come per esempio le firme GPG, è un client molto molto potente, è chiaro, pulito e privo di fronzoli inutili. Inoltre, ha una grafica davvero al top! In questa parte della guida, al fine di rendere funzionante sin da subito RoundCube,  non affronteremo la messa in sicurezza del web server apache, ma provvediamo solo ad installare quest’ultimo e configurarlo al minimo. Tutta la messa in sicurezza del sistema la vedremo nella parte finale di queste guide, dove tralaltro installeremo anche uno script per il firewall iptables.

Iniziamo dunque con lo scaricare l’occorrente per il funzionamento del webserver apache:

# apt-get install apache2 php5 libapache2-mod-php5 php5-gd mysql-server mysql-client php5-mysql

A questo punto, supponendo che abbiate provveduto a configurare il montaggio automatico del disco esterno USB così come fatto nella parte 2 di questa guida, è conveniente configurare apache in modo che la directory di lavoro risieda sul disco esterno. Ancora una volta l’obiettivo è quello di scrivere il meno possibile sulla compact flash prolungando così di molto la sua vita.

Per raggiungere il suddetto obiettivo dobbiamo modificare un file di Apache, precisamente il file 000-default che si trova nella directory /etc/apache2/sites-enabled. Prima di fare ciò creiamo la dir di lavoro di apache su disco usb:

# mkdir /dati/www

Adesso apriamo e modifichiamo il file /etc/apache2/sites-enabled/000-default in modo che tutte le direttive relative alla document root corrispondano a /var/www. Al termine dell’operazione dovreste avere un file identico a questo:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /dati/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /dati/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2’s default start page
# in /apache2-default/, but still have / go to the right place
RedirectMatch ^/$ /apache2-default/
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

A questo punto possiamo procedere con il download di RoundCube. Il mio consiglio è quello di scaricare il file del software direttamente in /dati/www e di lavorare da lì:

# cd /dati/www
# http://kent.dl.sourceforge.net/sourceforge/roundcubemail/roundcubemail-0.2-stable.tar.gz
# tar xzvf roundcubemail-0.2-stable.tar.gz
# mv rouncube-02 /dati/www/webmail
# rm roundcubemail-0.2-stable.tar.gz

Con i comando che ho appena riportato siamo ingrado di raggiungere il client roundcube (dopo la configurazione) tramite l’indirizzo http://IP_server/webmail.

Tuttavia il roundcube ancora non è configurato e per farlo dobbiamo procedere a creare il database con il client mysql. Visto che è la prima volta che accediamo a mysql, quest’ultimo avrà quale unico utente root privo di password. Per ragioni di sicurezza, quindi, creiamo una password per l’utente root di mysql:

# mysqladmin -u root password “vostra_password”

Adesso che abbiamo configurato la prima password, possiamo procedere con la creazione del database per roundcube:

# mysql -u root -p
Password: #Inserite la password creata poco fa#

Quando avrete avuto accesso al prompt di mysql digitate quanto segue:

mysql> create database roundcubemail;
mysql> grant all privileges on roundcubemail.* to ‘rouncube’@’localhost’ identified by ‘password_roundcube’;
mysql> flush privileges;

Ovviamente, modificate la password che io nella seconda riga ho riportato come password_roundcube con una password scelta da voi a caso. A questo punto siamo pronti ad usare l’installer di RoundCube che è davvero semplicissimo e che non ha affatto bisogno di spiegazioni. Pertanto, aprite il vostro browser e collegatevi all’indirizzo:

http://ip_server/webmail/installer

Come detto l’installer è davvero di facile utilizzo. I dati che dovete ricordare per la configurazione corretta della webmail sono: 1) il nome del database creato in precedenza (roundcubemail nel mio caso); 2) l’user mysql di roundcube (roundcube nel mio caso); 3) la password dell’user di roundcube in mysql. Il resto sarà tutto intuitivo al massimo!

  • Spostamento della gestione delle mail in una directory del disco rigido esterno

Siamo giunti alla fine di questa parte della guida ed è giunto il momento di fare in modo che le mail scaricate da fetchmail e le copie di quelle inviate non risiedano nella directory /var/mail della compact flash, sempre per limitare il numero di scritture. Per ottenere tale risultato dobbiamo in primis creare una nuova directory sul disco esterno:

# mkdir /dati/mail

Poi cambiamo i permessi della dir in questo modo:

# chown root:mail /dati/mail

Nel caso in cui abbiate già usato il server e, dunque, si siano già create alcune mailboxes nella dir /var/mail, procediamo con la copia speculare di tali files nella nuova directory:

# cp -ar /var/mail/* /dati/mail

Adesso non dobbiamo far altro che rimuovere la dir mail in /var e creare un link simbolico verso la directory creata sul disco rigido USB. Prima di tutto ciò provvediamo spegnendo momentaneamente i servizi di posta elettronica:

# /etc/init.d/postfix stop
# /etc/init.d/dovecot stop
# rm -rf /var/mail
# ln -s /dati/mail /var/mail

Fatta questa operazione dobbiamo procedere con qualcosa di simile per ogni utente del server. Procediamo, dunque, con la creazione di una nuova directory sul disco rigido esterno:

# mkdir users_mail

Adesso entriamo in questa nuova directory e creiamo tante directory quanti sono gli utenti di sistema. Nel mio caso procederò con la creazione dell’occorrent ad un solo utente dal nome stefano (solo come esempio):

# cd /dati/users_mail
# mkdir stefano
# chown -R stefano:stefano stefano

Ancora, occorre copiare il contenuto della dir /home/stefano/mail nella nuova directory del disco rigido:

# cp -ar /home/stefano/mail /dati/users_mail/stefano/

E, infine, cancelliamo la dir delle mail nella home di stefano e creiamo un link simbolico alla nuova directory sul disco esterno:

# rm -rf /home/stefano/mail
# ln -s /dati/users_mail/stefano/mail /home/stefano/mail

Da questo momento in poi le e-mail verranno fisicamente scritte sul disco rigido usb esterno e non più in compact flash 🙂

Anche per oggi abbiamo terminato. Nella prossima parte della guida inzieremo a configurare samba per la condivisione dei files in rete. Solo in un momento successivo configureremo il client web per il downbload dei files torrent torrent.

Ti è piaciuto questo articolo?  Abbonati alla newsletter per ricevere i nuovi articoli inseriti nel sito:


 

5 Responses

  1. manu says:

    ciao, sto seguendo i tuoi articoli sull’alix con interesse. Posso chiederti se l’alix supporta l’evento Power Button? ti sarei molto grato se postassi anche un cat /proc/bus/input/devices. Grazie mille

  2. stefano says:

    @ manu:
    eccotelo:

    alix-server:~# cat /proc/bus/input/devices
    I: Bus=0010 Vendor=001f Product=0001 Version=0100
    N: Name=”PC Speaker”
    P: Phys=isa0061/input0
    S: Sysfs=/class/input/input0
    U: Uniq=
    H: Handlers=kbd
    B: EV=40001
    B: SND=6

    Per quanto riguarda il powerbutton, non essendo installato acpi (almeno nella mia configurazione) non c’è alcun supoprto a questa funzione… mi domando però a cosa ti serva il powerbutton se non c’è alcun bottone di accensione sul case della alix.

  3. […] [Guida]Realizziamo un server a basso costo per mail, torrent e condivisione files (Parte 4) Author: admin | Categoria Blog Personale In questa quarta parte della guida completiamo la configurazione del server di posta elettronica. In particolare, procediamo con l’installazione del sistema di scaricamento della posta elettronica dalle attuali caselle che abbiamo in giro per il web con fetchmail; poi continueremo con la configurazione del sistema di webmail RoundCube ed infine con  lo spostamento della gestione […] Vai alla Fonte […]

  4. manu says:

    Non ha il bottoncino di accensione??? Interessante. Quindi lo colleghi all’alimentazione e lui parte da solo? per spegnerlo devi staccare la presa? Potresti postarmi un lspci -vvk ??? Ti ringrazio in anticipo

  5. manu says:

    ho ottenuto per via alterne il dump di lspci. Grazie lo stesso

Comments

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.