Linux - 2/2 - Installare Server di posta con Postfix, MailScanner, ClamAV, Spamassassin su Centos



Questo articolo si ricollega al precedente post che trattava dell'installazione da zero di postfix e dovecot su centos 5.7:


http://alessandromazzanti.blogspot.com/2011/02/installare-postfix-antivirus-antispam.html

Diciamo che questa si tratta della seconda parte.

Questa soluzione è stata testata su Centos 5.5 e risulta funzionante, ho trascritto il tutto nel caso ne avessi bisogno in futuro e qualcuno fosse interessato.



1) Va installato un repository diverso (è molto probabile che alcuni pacchetti, sennò, non vengano trovati).


Dare i seguenti comandi:

 wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
    * Download the latest RPMFORGE repository for I386 on CentOS5/RHEL5


N.B. Nel caso si abbia una versione di centos diversa i link sono i seguenti:
(wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm

    * Download the latest RPMFORGE repository for x86_64 on CentOS5/RHEL5

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm

    * Download the latest RPMFORGE repository for I386 on CentOS4/RHEL4

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el4.rf.i386.rpm

    * Download the latest RPMFORGE repository for x86_64 on CentOS4/RHEL4

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el4.rf.x86_64.rpm

    * Download the latest RPMFORGE repository for I386 on CentOS3/RHEL3

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el3.rf.i386.rpm

    * Download the latest RPMFORGE repository for x86_64 on CentOS3/RHEL3

wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el3.rf.x86_64.rpm

    * Run the rpm install command

rpm -Uvh rpmforge-release-*.rpm

rpm -ivh rpmforge-release-0.5.2-2.el5.rf.i386.rpm )

   vim /etc/yum.repos.d/rpmforge.repo 

cambiare nella sezione extra da 0 a 1 alla voce:

   enabled = 1


2) Successivamente è necessario installare i seguenti tool che sono un propedeutico per l'installazione:


   yum install clamav clamd gcc perl-DBI perl-MIME-tools postfix rpm-build spamassassin unrar

3) /etc/init.d/postfix stop

4) yum install binutils glibc-devel gcc make

5) Scaricare, decomprimere ed installare MailScanner.

   wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.84.3-1.rpm.tar.gz
   tar -xvzpf MailScanner-4.84.3-1.rpm.tar.gz
   cd  MailScanner-4.84.3-1
   ./install.sh

In fase di installazione, MailScanner crea ed installa forzatamente alcuni pacchetti perl. 

6) Occorre dare la priorità a questo software escludendo perl dagli aggiornamenti.

   yum --exclude=perl* update

oppure editare:

vim /etc/yum.conf

ed aggiungere:


exclude=openo*, Kernel*, perl*

N.B. Se appare l'errore perl-MIME-tools >= 5.411 is needed by mailscanner-4.22-5 

E' sufficiente copiare tutti i file *.rpm dalla cartella scompattata di MailScanner in /usr/src/redhat/RPMS/noarch/


Se la cartella di destinazione non esiste crearla

N.B. 2 Si può scaricare l'ultima versione di perl-MIME per centos e copiarla nel path di MailScanner scompattato insieme agli altri rpm dal seguente indirizzo

wget http://apt.sw.be/redhat/el5/en/i386/testing/RPMS/perl-MIME-tools-5.427-1.el5.test.noarch.rpm

7) Per attivare MailScanner lanciare i seguenti comandi:

    service postfix stop

    chkconfig postfix off


    chkconfig MailScanner on


    service MailScanner start



8) Editare /etc/MailScanner/MailScanner.conf:

     vim /etc/MailScanner/MailScanner.conf  

tenendo a mente che ci sono 5 cose da dover modificare per poter funzionare con Postfix.

     Run As User = postfix
     Run As Group = postfix
     Incoming Queue Dir = /var/spool/postfix/hold
     Outgoing Queue Dir = /var/spool/postfix/incoming
     MTA = postfix 

Deliver Disinfected Files = yes

 
9) Va verificato che l'utente user "postfix" possa scrivere in /var/spool/MailScanner/incoming and /var/spool/MailScanner/quarantine con i seguenti comandi:
 
     chown postfix.postfix /var/spool/MailScanner/incoming
 
     chown postfix.postfix /var/spool/MailScanner/quarantine
 
Se uno deve aggiornare la propria versione di MailScanner tenere a mente che i 2 commandi precedenti vanno ridati.
 
10) Editare /etc/MailScanner/virus.scanners.conf

     vi /etc/MailScanner/virus.scanners.conf
      [...]
     clamav               /usr/lib/MailScanner/clamav-wrapper     /usr
     clamd                /bin/false                                             /usr
     clamavmodule    /bin/false                                             /tmp
     [...]

    l'ultima riga serve per abilitare l'autoaggiornamento automatico e permette che venga   eseguito in automatico ogni /etc/cron.hourly/update_virus_scanners
11) Editare /etc/MailScanner/rules/max.message.size.rules

     vim /etc/MailScanner/rules/max.message.size.rules
     [...]
     From:      *@NomeDominio     LimiteGrandezzaEMail
     [...]
12) Creare la directory /var/spool/MailScanner/spamassassin ed assegnarle postfix come proprietario.

     mkdir /var/spool/MailScanner/spamassassin
     chown postfix.postfix /var/spool/MailScanner/spamassassin

Verificare sempre che i file in questa cartella abbiano le permission giuste con il comando:

      ll

13) Editare il file /etc/postfix/main.cf 
     vim /etc/postfix/main.cf


      ed aggiungere la riga


     header_checks = regexp:/etc/postfix/header_checks

14) Nel File /etc/postfix/header_checks add this line:

      vim /etc/postfix/header_checks

      /^Received:/ HOLD 

15) Conclusione

     /etc/init.d/MailScanner start
 Per vedere i log:

tail -f /var/log/maillog


 chown postfix.postfix /var/log/postfix


 chown postfix.postfix /var/spool/postfix



 chown postfix.postfix /var/spool/MailScanner/





 cd /var/spool/MailScanner/




chown postfix.postfix *.*


chown postfix.postfix *


cd /var/spool/MailScanner/incoming/



chown postfix.postfix *.*


chown postfix.postfix *












16) Per testare la soluzione è sufficiente settare outlook express con pop3 e smtp come da ip del server ed iniziare a mandare e ricevere le mail su @instyle.locale

16) Per utilizzare il mail server su internet sarà necessario comprare un dominio, IP fisso e settare il record mx che punti all'IP del firewall settando un opportuno port forwarding sul mail server che sarà messo in DMZ. Per finire andrà settato il DNS locale, ma questo farà parte di un futuro tutorial.

APPENDICE

Ecco alcuni comandi che possono tornare utili nel settaggio del Mail Server:

- Invio mail di prova:

mail -s "Error in chapter 6" ralph
Dear Apress support,
I have found an error in chapter 6.
Regards,
Your Name
-d
Cc:

echo "testing" | mail -s "test email" myaddress@gmail.com
- trovare il record mx:
host -t mx apress.com

apress.com mail is handled by 5 smtp3.intermedia.net.
apress.com mail is handled by 50 mail.uu.net.

- Postconf -d visualizza i parametri di default 

- Esempi di antispam gratuiti:

smtpd_helo_required = yes
smtpd_client_restrictions = permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destinations,
reject_rbl_client bl.spamcop.net

smtpd_sender_restrictions =
permit_sasl_authenticated,
check_sender_access hash:/etc/postfix/access
reject_unknown_sender_domain,
reject_non_fqdn_sender,
reject_rhsbl_sender dsn.rfc-ignorant.org 

Utilizzare una Webmail:

E' necessario installare Apache seguendo la guida presente qui
yum install squirrelmail 

service httpd restart

/usr/share/squirrelmail/config/conf.pl 


 Squirremail di default è settato su IMAP, premere D per i settaggi di default

Selezionare Dovecot e premere invio
Tornando alla schermata iniziale premere 2 apparirà:


premere 1 per settare il dominio.


Se il server web viene eseguito sullo stesso host del web server si può lasciare Sendmail o SMTP che è  /usr/sbin/sendmail. Se invece il server SMTP è disponibile su un altro Server premere B e configurare i settaggi SMTP compreso SMTP-Auth e TLS.
Stessa cosa dicasi per il server IMAP.

Premere A per salvare i settaggi.

Si può andare anche negli altri menu per modificare il tema e la rubrica.

Per accedere alla mail è sufficiente digitare https://www.example.com/webmail

Salvare la configurazione premendo S e Q per uscire

yum install httpd

The SquirrelMail files reside in /usr/share/squirrelmail. Create the following link to
make SquirrelMail accessible from the Web:
# ln -s /usr/share/squirrelmail /var/www/html/mail

per configurare squirremail
cd /usr/share/squirrelmail/config
# ./conf.pl

SquirrelMail provides a Web page that tests its configuration. Point a browser on
the server at localhost/mail/src/configtest.php. Replace localhost with the IP
address or FQDN of the server to view the page from another system. SquirrelMail
checks its configuration and displays the results on this page.

Per effettuare il login:

Point a Web browser at localhost/mail or localhost/mail/src/login.php to display
the SquirrelMail login page


Alcuni comandi postfix

mailq per vedere le code

mailstats statistiche mail

Relay host: On a LAN, you might want to set up a single server to process outbound mail,
keeping local mail inside the network. A system that processes outbound mail for
other systems is called a relay host. The /etc/mail/access file specifies which systems
the local server relays email for.

Spamassassin

With spamd running, you can see how spamc works by sending it a string:

$ echo "hi there" | spamc

permette di capire come spamassassin lavora

/etc/mail/spamassassin/local.cf. You can edit this file to configure SpamAssassin
globally. Users can override these global options and add their own options in the
~/.spamassassin/user_prefs file.

you can configure SpamAssassin to rewrite the Subject line of email it
rates as spam. The rewrite_header keyword in the configuration files controls this
behavior. The word Subject following this keyword tells SpamAssassin to rewrite
Subject lines. Remove the # from the following line to turn on this behavior:
# rewrite_header Subject *****SPAM*****

required_score 5.00

setta lo score minimo affinchè una mail sia considerata come spam

Use the whitelist_from keyword to
specify addresses that should never be marked as spam and blacklist_from to specify
addresses that should always be marked as spam:

whitelist_from sams@example.com
blacklist_from *@spammer.net

You can specify multiple addresses, separated by SPACEs, on the whitelist_from and blacklist_from lines. Each address can include wildcards. To whitelist everyone sending email from the example.com domain, use whitelist_from *@example.com. You can use multiple whitelist_from and blacklist_from lines.