What to do with SpamAssassin after installing Amavis?

5,277

According to Ubuntu 14.04 Server Guide Mail Filtering:

Amavisd-new is a wrapper program that can call any number of content filtering programs for spam detection, antivirus, etc.

You still need SpamAssassin, so you should not uninstall it. Actually, amavisd-new-postfix depends on spamassassin, so removing the package with apt-get remove spamassassin will also remove Amavis.

This chart visualizes how the pieces fit together (based on the same Mail Filtering guide):

Ubuntu + Postfix + Amavisd

You should

  1. remove the pipe to SpamAssassin from your Postfix configuration, i.e. remove:

    smtp      inet  n      -      -      -      -      smtpd -o content_filter=spamfilter
    

    and

    spamassassin
         unix  -       n       n       -       -       pipe
         flags=R
         user=spamuser 
         argv=/usr/bin/spamc 
         -e /usr/sbin/sendmail 
         -oi -f ${sender} ${recipient}
    
  2. integrate Amavis to Postfix, instead.

    For Postfix integration, enter the following from a terminal prompt:

    sudo postconf -e 'content_filter = smtp-amavis:[127.0.0.1]:10024'
    

    Next edit /etc/postfix/master.cf and add the following to the end of the file:

    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,no_milters
    

    Also add the following two lines immediately below the "pickup" transport service:

     -o content_filter=
     -o receive_override_options=no_header_body_checks
    
Share:
5,277

Related videos on Youtube

Miloš Đakonović
Author by

Miloš Đakonović

Updated on September 18, 2022

Comments

  • Miloš Đakonović
    Miloš Đakonović over 1 year

    As far as I know, Amavis has SpamAssassin on his own (I think Perl Mail::SpamAssassin).

    Before installing Amavis, I was using SpamAssassin binary and daemon (spamc and spamd) plugged into MTA (Postfix via pipe).

    My question is: what to do - is it safe to apt-get remove spamassassin now after installation and configuring of Amavis?

    OS is Ubuntu 14.04 LTS.

  • Miloš Đakonović
    Miloš Đakonović about 7 years
    Thanks. But, do you think I should do something with configuration? Maybe to restore params to default - or not? I think that conf files has my own, adjusted params, example: rewrite_header Subject required_score 3.0 use_bayes 1
  • Esa Jokinen
    Esa Jokinen about 7 years
    Since you were using Postfix to pipe messages to Spamassassin, it should use the same configuration when called by Amavisd. You probably don't need to change anything. Both will do spam filtering based on server-wide configuration from /etc/spamassassin/local.cf. In setups with mailbox_command = procmail -a "$EXTENSION" users have possibility to use Spamassassin independently with :0fw \n | spamassassin in their .procmailrc. This allows using custom settings in .spamassassin/user_prefs, which this Amavisd setup naturally omits.