1
0
mirror of https://github.com/mail-in-a-box/mailinabox.git synced 2025-06-29 22:30:53 +00:00
mailinabox/setup/clamsmtpd.sh
jvolkenant 830dea309b New branch for clamsmtpd testing
Added Clamsmtpd for clamav email virus scanning.  Virus email will be dropped and notification will be sent to user in its place.  Tested it on my MIAB as an upgrade, need to test as full install
2016-08-22 00:42:20 -07:00

70 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# clamsmtpd virus scanning
# ----------------------
source setup/functions.sh # load our functions
source /etc/mailinabox.conf # load global vars
echo "Installing clamsmtpd (ClamAV e-mail virus scanning)..."
# Install clamav-daemon & clamsmtpd with additional scanning formats
apt_install clamav-daemon clamav clamsmtp unzip p7zip zip arj bzip2 cabextract cpio file gzip lhasa nomarch pax rar unrar unzip zip zoo
# Config /etc/clamsmtpd.conf
# Config edits do the following:
# Default port of 10025 is already in use by <>, using unused port 10028 to pass back from clamsmtpd to postfix.
# Default port of 10026 for listening from postfix is already in use by <>, using unused port 10027 instead.
# Add X-AV-Checked Header
# Adds script to notify destination user only (since sender may be spoofed) that mail was dropped due to virus detection)
tools/editconf.py /etc/clamsmtpd.conf -s \
OutAddress:=127.0.0.1:10028 \
Listen:=127.0.0.1:10027 \
Header:="X-AV-Checked: ClamAV" \
VirusAction:="/usr/local/lib/clamsmtpd/email_virus_notify.sh"
# Configure postfix main.cf
tools/editconf.py /etc/postfix/main.cf \
content_filter=scan:127.0.0.1:10027 #\
#not sure if the below is needed/wanted, RFC - http://www.postfix.org/postconf.5.html#receive_override_options
#receive_override_options=no_address_mappings
# Configure postfix master.cf
tools/editconf.py /etc/postfix/master.cf -s -w \
"scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes" \
"127.0.0.1:10028 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8"
# Config Notification Script
# Inspiration from https://h4des.org/blog/index.php?/archives/308-clamsmtp-informing-recipients-abount-email-virus-infection.html
mkdir -p /usr/local/lib/clamsmtpd
chown clamsmtp:clamsmtp /usr/local/lib/clamsmtpd
cp tools/email_virus_notify.sh /usr/local/lib/clamsmtpd/email_virus_notify.sh
chown clamsmtp:clamsmtp /usr/local/lib/clamsmtpd/email_virus_notify.sh
chmod 700 /usr/local/lib/clamsmtpd/email_virus_notify.sh
# Force virus def updates
echo "Updating ClamAV Definitions"
echo ""
/usr/bin/freshclam
# restart postfix, start clamsmtpd, clamav-daemon, clamav-freshclam
adduser clamsmtp clamav > /dev/null
restart_service postfix
restart_service clamsmtp
restart_service clamav-daemon
restart_service clamav-freshclam