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.