In questa guida creeremo un server di posta con utenze di tipo virtuale, tali utenze risiederennao su un database di tipo MySql e i servizi IMAP e POP saranno configurati ad-hoc a tale scopo.

Installazione e Configurazione del servizio Postfix

Sul server Debian eseguiamo i seguenti passi:

Aggiorniamo i repositori di apt.

# apt-get update
# apt-get dist-upgrade

Installiamo la parte Postfix e SASL

# apt-get install postfix postfix-mysql libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl

Installiamo la parte DB MySql

# apt-get install mysql-server mysql-client

Installiamo la parte Web

# apt-get install apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass

Installiamo la parte Courier

# apt-get install courier-authdaemon courier-authlib courier-authlib-mysql courier-authlib-userdb courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl

Installiamo la parte Antivirus e AntiSpam base

# apt-get install amavisd-new spamassassin clamav-daemon

Perfezioniamo l’installazione della parte AntiSpam

# apt-get install libnet-dns-perl pyzor razor libmail-spf-perl

Aggiungiamo i pacchetti per il controllo degli allegati

# apt-get install arj bzip2 cabextract cpio file gzip nomarch pax rar unrar unzip zip zoo p7zip-full

All’installazione dei pacchetti, probabilmente verranno richieste alcune risposte:

General type of mail configuration: <-- Internet Site
System mail name: <-- mail.example.com
New password for the MySQL "root" user: <-- yourrootsqlpassword
Repeat password for the MySQL "root" user: <-- yourrootsqlpassword
Create directories for web-based administration? <-- No
SSL certificate required <-- Ok
Web server to reconfigure automatically: <-- apache2
Configure database for phpmyadmin with dbconfig-common? <-- No

Configurazione di Amavis (configurazione utenti di sistema)

Aggiungere l’utenza clamav al gruppo amavis e vice versa in modo che Clamav abbia accesso ai files scansionati:

# adduser clamav amavis
# adduser amavis clamav

Configurazione di Spamassassin (configurazione partenza)

Spamassassin può controllare le mail utilizzando componenti opzionali e li userà se presenti. Questo significa che non è obbligatorio configurare dcc-client, pyzor e razor. 

Editare /etc/default/spamassassin per attivare il demone di Spamassassin cambiando ENABLED=0 a: 

ENABLED=1

e per abilitare gli updates automatici delle regole cambiamo CRON=0 a: 

CRON=1

Ora facciamo partire il servizio Spamassassin: (not restart)

# /etc/init.d/spamassassin start

Configurazione di Amavis (setting motori antivirus e antispam)

Prima di tutto, attiviamo lo spam e l’antivirus detection in Amavis editando il file /etc/amavis/conf.d/15-content_filter_mode e togliendo il commento davanti a @bypass_virus… e @bypass_spam…:

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
#

@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
#

@bypass_spam_checks_maps = (
   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

1;  # insure a defined return

Riavviamo il servizio Amavis:

# /etc/init.d/amavis restart

Integrazione di Amavis in postfix

Per l’integrazione di postfix, aggiungiamo la variabile content_filter alla configurazione di Postfix nel file /etc/postfix/main.cf.

content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings

Editiamo ora il file master.cf aggiungendo le seguenti voci:

smtp-amavis     unix    -       -       -       -       2       smtp
        -o smtp_data_done_timeout=1200
        -o smtp_send_xforward_command=yes
        -o disable_dns_lookups=yes
        -o max_use=20

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_delay_reject=no
        -o smtpd_client_restrictions=permit_mynetworks,reject
        -o smtpd_helo_restrictions=
        -o smtpd_sender_restrictions=
        -o smtpd_recipient_restrictions=permit_mynetworks,reject
        -o smtpd_data_restrictions=reject_unauth_pipelining
        -o smtpd_end_of_data_restrictions=
        -o mynetworks=127.0.0.0/8
        -o smtpd_error_sleep_time=0
        -o smtpd_soft_error_limit=1001
        -o smtpd_hard_error_limit=1000
        -o smtpd_client_connection_count_limit=0
        -o smtpd_client_connection_rate_limit=0
        -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Aggiungiamo anche queste due linee appena sotto alla configurazione pickup, sempre nel file master.cf:

-o content_filter=
-o receive_override_options=no_header_body_checks

 Riavviamo Postfix:

/etc/init.d/postfix reload