Amavisd-new, ClamAV and SpamAssassin with Postfix on CentOS 6.7 Server

Amavisd-new, ClamAV and SpamAssassin with Postfix on CentOS 6.7 Server

What is amavisd-new, ClamAV and SpamAssassin?

amavisd-new is a high-performance interface between mailer (MTA) and content checkers: virus scanners, and/or SpamAssassin.

Clam AntiVirus (ClamAV) is a free and open-source, cross-platform antivirus software toolkit able to detect many types of malicious software, including viruses. One of its main uses is on mail servers as a server-side email virus scanner.

SpamAssassin is a mail filter to identify spam. It is an intelligent email filter that uses a diverse range of tests to identify unsolicited bulk email, more commonly known as Spam.

Installation:

yum install amavisd-new

✓ This will install amavisd-new and a bunch of dependencies. It will also install SpamAssassin by default.

yum install clamav clamav-update

✓ This will install ClamAV.

freshclam

✓ This will update the ClamAV database.

Configuration:

✓ Edit amavisd.conf.

vim /etc/amavisd/amavisd.conf

Change the following lines like this…

$mydomain = ‘domain.com’;   # a convenient default for other settings
$myhostname = 'mail.domain.com’;  # must be a fully-qualified domain name and same as reverse DNS lookup

✓ Make sure everything is set in postfix's configuration file master.cf

vim /etc/postfix/master.cf

On top of master.cf, you should have something like…

smtp      inet  n       -       n       -       -       smtpd
 -o smtpd_sasl_auth_enable=yes
 -o receive_override_options=no_address_mappings
 -o content_filter=smtp-amavis:127.0.0.1:10024

…and on the bottom, you should have something like…

#
# spam/virus section
#
smtp-amavis  unix  -    -       y       -       2       smtp
 -o smtp_data_done_timeout=1200
 -o disable_dns_lookups=yes
 -o smtp_send_xforward_command=yes
127.0.0.1:10025 inet n  -       y       -       -       smtpd
 -o content_filter=
 -o smtpd_helo_restrictions=
 -o smtpd_sender_restrictions=
 -o smtpd_recipient_restrictions=permit_mynetworks,reject
 -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 receive_override_options=no_header_body_checks
 -o smtpd_helo_required=no
 -o smtpd_client_restrictions=
 -o smtpd_restriction_classes=
 -o disable_vrfy_command=no
 -o strict_rfc821_envelopes=yes

✓ Stop the postfix daemon.

service postfix stop

✓ Start Spamassassin, Amavisd-new and ClamAV daemons.

service spamassassin start
service amavisd start # This will also start ClamAV

✓ Start the postfix daemon.

service postfix start

That's it! Now you have basic spam and virus protection up and running on your CentOS server.