L'objectiu d'aquest document és explicar la forma més senzilla que he trobat per muntar un servidor de correu relativament complet, és a dir, amb suport de connexions segures (SSL), Webmail amb corrector ortogràfic, llistes de correu, IMAP/POP3, amb controls d'antivirus i antispam, comprovació del DNS per evitar que un spammer ens faci servir l'SMTP incorrectament, suport de múltiples usuaris i dominis, administració via web....
Ho he fet muntant un guinux basat en Fedora Core 2, encara que fàcilment és traslladable a altres distribucions. En resum, allò que típicament requereix d'uns nivells de complexitat importants.
Nota: Queda alguna cosa per provar, però abans que no se'm en vagi l'olla....
l'SSL, l'Antispam/Antivirus, enviar i rebre etc sí que rutlla.
És un d'aquells documents que típicament és interessant d'anar ampliant amb el temps.
Preliminar
S'instal.la de bell nou, i de forma completa, un guinux basat en Fedora Core 2Instal·lació del correu amb lazydog
- Com que la idea és fer-ho de la forma més senzilla possible, li donarem una oportunitat al script que podem trobar a http://www.lazyinstaller.net, no diu que estigui provat encara sobre Fedora Core 2, però ens la jugarem.
- Ens baixem l'script, en aquest cas, el que toca és qmail_lazydog_v2.0.2.sh
- L'editem, al principi hi surten unes variables on cal posar-hi els valors corresponents al nostre sistema. Per exemple, en el meu cas el canvi realitzat és el següent:
# Preparation
# :::
# The things you need to change are:
# %DOMAINNAME% to the domainname of your mailserver.
# %MAILADDR% to your mailaddress if someone are having questions about their quota.
# %IPNUMBER% to your mailservers ip number.
# %HTDOCS% to the location of your htdocs (where the webroot is).
# %CGI-BIN% to the location of your cgi-bin folder.
# %HTTPD.CONF% to the location of your httpd.conf file.
# %WEBUSER:WEBGROUP% to username and group of apache.
# %HTPASSWD% to the exact location of htpasswd binary.
# %DOWNLOADER% the command line used for downloading files, for instance: wget --passive-ftp,
if you have wget and need to use passive mode while ftp'ing.
echo You have not edited this file or read the documenation, there for I cannot start. && exit
# REMOVE OR COMMENT THIS LINE.Amb vi faig els canvis (compte, globalment!, no sols a la capçalera que veieu, sinò en TOTES les ocurrències). Un exemple de la comanda és:
:1,$s/%DOMAINNAME%/elmeudiomini.com/g
El resultat després dels canvis és:
# :::
# The things you need to change are:
# gurb.net to the domainname of your mailserver.
# ramon.roca -A- gurb.net to your mailaddress if someone are having questions about their quota.
# 192.168.39.52 to your mailservers ip number.
# /var/www/html to the location of your htdocs (where the webroot is).
# /var/www/cgi-bin to the location of your cgi-bin folder.
# /etc/httpd/conf/httpd.conf to the location of your httpd.conf file.
# apache:apache to username and group of apache.
# /usr/bin/htpasswd to the exact location of htpasswd binary.
# wget --passive-ftp the command line used for downloading files, for instance: wget --passive-ftp,
if you have wget and need to use passive mode while ftp'ing.
# echo You have not edited this file or read the documenation, there for I cannot start. && exit
# REMOVE OR COMMENT THIS LINE. - Adoneu-vos que també s'ha commentat la darrera línia que apareix per a poder continuar la execució del script.
- En aquesta versió i en la línia 602 d'aquest mateix script, tot just quan anirà a crear el bincimap.conf, cal que avans crei el directori, sinò casca. Coses de les versions experimentals. Hauria de quedar així:
# A .conf file for BINC
mkdir /var/qmail/bincimap/etc
cat >/var/qmail/bincimap/etc/bincimap.conf< - L'executem amb:
sh qmail_lazydog_v2.0.2.sh
Primer es baixarà els paquets necessaris d'internet, després ens farà tot seguit una sèrie de preguntes a la línia de comandes, com ara les dades per crear el certificat, etc. Són autoexplicatives.
- Un cop acabat, farem el que ens demana: Reiniciar el servei del apache perquè agafi els certificats generats i les noves variables:
service httpd restart
I anirem a la administració web i li crearem un domini (la url és http://nom_de_la_meva_maquina/cgi-bin/vqadmin/vqadmin.cgi)
Avans però de iniciar els serveis, ens assegurarem que el sendmail no esta iniciat ni posat com que s'inicii automàticament, això ho podeu comprovar a Configuracion del Sistema->Configuracions del Servidor->Serveis.
Per iniciar ja els serveis:/var/qmail/service/init.rc start
Comproveu que podeu rebre i enviar ja mails. Recordeu que perquè funcioni, com que comprova el DNS, cal que tingueu un DNS vàlid amb la corresponent entrada MX. Podeu fer servir un servidor de noms local BIND per fer la prova.
- Assegureu-vos que el servei de sendmail no esta actiu, ni s'inicia tampoc de forma automàtica. El script del següent punt és que s'encarrega d'iniciar el procés adequat.
Això es pot fer també des de la configuració de serveis o amb la comanda:
chkconfig sendmail off
Per assegurar-vos de que no s'inicia automàticament podeu fer:
# chkconfig --list |grep sendmail
sendmail 0:off 1:off 2:off 3:off 4:off 5:off 6:offLa segona línia és la sortida de la comanda. Tots els nivells han d'estar en "off".
Feu les mateixes comprovacions per al servei imap... Aturei els serveis si ja estaven iniciats. - Poseu-lo al /etc/rc.local perquè els serveis s'iniciin automàticament.
Activar l'Antispam (Spamassassin) i l'Antivirus (Clamav)
L'anti Spam (SpamAssassin) ja vé amb els paquets del Fedora, i només cal activar el servei.L'antivirus (Clamav) no, però anant a la seva pàgina hi han enllaços per baixar-se les rpm per al Fedora. Jo he instal·lat aquest i així:
rpm -U clamav-0.72-1.i386.rpm
Un cop instal·lat l'antivirus, cal activar el servei clamd (l'antivirus) i el freshclam (qui actualitza les definicions del antivirus). Un cop fet això ja ens en podem despreocupar i sempre el tindrem al dia.
Ara ens queda muntar els paquets ripMIME i maildrop ja que s'han de fer servir per a filtrar els correus. Això ho he hagut de fer des dels fonts, per muntar-ho segiu aquestes instruccions canviant només el que calgui si han pujat les versions:
# Maildrop
wget http://aleron.dl.sourceforge.net/sourceforge/courier/maildrop-1.6.3.tar.bz2
tar jxf maildrop-1.6.3.tar.bz2
cd maildrop-1.6.3
./configure
cd numlib
make
cd ..
cd liblock/
make
cd ..
cd rfc822
make
cd ..
cd maildrop
make reformail
cp reformail /usr/local/bin
chmod 755 /usr/local/bin/reformail
cd ../..
# ripMIME.
wget http://www.pldaniels.com/ripmime/ripmime-1.3.1.2.tar.gz
tar zxf ripmime-1.3.1.2.tar.gz
cd ripmime-1.3.1.2
make
make install
make libripmime
cp libripmime.a /usr/local/lib/
cd ..
Per activar ja els filtres, cal editar un parell d'arxius:
/var/qmail/bin/scanmail.sh: Canvia la variable de SPAM=no a SPAM=yes i corregeix el PATH de l'executable del clam. Tot plegat aquest tros d'aquest script hauria de quedar així:
# Drop virus mails, yes or no
DROP=yes
# Have spamassasin installed?
SPAM=yes
# Clamav options (make sure the paths are correct).
CLAMOPTIONS="-r --tempdir=/tmp"
#CLAMOPTIONS="-r --tempdir=/tmp --unrar=/usr/bin/unrar --unarj=/usr/bin/unarj
--zoo=/usr/bin/zoo --lha=/usr/bin/lha --jar=/usr/bin/unzip --tar=/bin/tar --tgz=/bin/tar"
# Setup program locations
CLAM="/usr/bin/clamdscan $CLAMOPTIONS"
REFORM="/usr/local/bin/reformail"
RIPMIME="/usr/local/bin/ripmime"
i al /var/qmail/service/init.smtpd descomenta la línia que defineix la variable QMAILQUEUE treient el signe '#':
export QMAILQUEUE='/var/qmail/bin/qmail-spamc'
Reinicia els serveis, ara ja tot hauria de funcionar 
Ah... i per començar a crear servidors amb dominis, i usuaris de correu, recorda anar a la url del qmailadmin: http://el_meu_servidor/cgi-bin/qmailadmin.
Webmail
El fedora ja ens aporta un squirrelmail incorporat. Si no el teniu us serà fàcil localitzar-ne paquets i el projecte és a http://www.squirrelmail.org
L'squirrelmail com a webmail està molt bé: Proporciona forces opcions, signatures digitals, personalització de la configuració, etc. Per fer-lo servir cal, això si, que tinguem l'IMAP operatiu.
L'squirrelmail en el Fedora ens el deixa muntat a /usr/share/squirrelmail, i l'Apache ja ens porta configurat un àlies de manera que si anem a l'adreça http://localhost/webmail (és a dir, afegint "webmail" al nom de la màquina), ja ens el troba.
A banda de la personalització, s'han de fer a la configuració (arxiu /usr/share/squirrelmail/config/config.php):
- Posar INBOX com a nom de la carpeta IMAP, sinò, donava un error en el frame esquerra dient que no la trobava.
- Desactivar la lectura de missatges agrupats en fils (el bincimap no suporta aquest mode)
On posava....
$default_folder_prefix = 'MAILBOX/'; ..i.. $allow_thread_sort = true;
Canviar-ho per...
$default_folder_prefix = 'INBOX/'; $allow_thread_sort = false;
Corrector ortogràfic
Squirrelmail ja disposa de corrector ortogràfic. Fa servir l'aspell. En el nostre cas, com que volem el català, ens cal afegir-lo a la llista d'idiomes disponibles.Per fer-ho (canvieu la versió en cas de que n'hi hagi una altra):
wget ftp://ftp.gnu.org/gnu/aspell/dict/ca/aspell-ca-0.50-2.tar.bz2
tar jxvf aspell-ca-0.50-2.tar.bz2
cd apsell-ca*
./configure
make
make install
Amb això ja ens hauria de quedar el català instal·lat i llest per fer servir des del Squirrelmail.
Resultat
Una cosa força decenteta. No arriva al nivell i funcionalitats d'un Oracle Collaboration Suite, però si força millor que algunes "coses" de pagament que corren per aquests móns

