2017-10-24 15:09:14 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
#set -x
|
|
|
|
umask 022
|
|
|
|
|
2023-07-25 15:24:00 +02:00
|
|
|
tmp_dir="/tmp/spam_sh"
|
|
|
|
mkdir -p "${tmp_dir}"
|
|
|
|
data_url="http://antispam00.evolix.org/spam"
|
|
|
|
rc=0
|
|
|
|
|
|
|
|
function is_installed {
|
|
|
|
dpkg -l "${1}" 2>&1 | grep -v "no packages found matching" | grep -q ^ii
|
|
|
|
}
|
|
|
|
|
|
|
|
function is_new {
|
|
|
|
# Check whether a file name provided as argument has been changed remotely
|
|
|
|
cd "${tmp_dir}"
|
|
|
|
wget -q -t 3 "${data_url}/${1}.md5" -O "${1}.md5.new"
|
|
|
|
if ! [ -e "${1}.md5" ] || ! cmp -s "$1.md5" "${1}.md5.new"; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
|
|
|
function download {
|
|
|
|
cd "${tmp_dir}"
|
|
|
|
wget -q -t 3 "${data_url}/${1}" -O "${1}"
|
2023-07-28 12:00:31 +02:00
|
|
|
wget -q -t 3 "${data_url}/${1}.md5" -O "${1}.md5"
|
2023-07-25 15:24:00 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
function check_integrity {
|
|
|
|
cd "$tmp_dir"
|
|
|
|
md5sum -c "${1}.md5" > /dev/null && [ -e "${1}" ]
|
|
|
|
}
|
|
|
|
|
|
|
|
function cleanup {
|
|
|
|
rm -f /etc/postfix/header_kill.db
|
|
|
|
rm -f /etc/postfix/header_kill_local.db
|
|
|
|
rm -f "$tmp_dir"/*.md5.new
|
|
|
|
}
|
|
|
|
|
2023-07-28 12:00:31 +02:00
|
|
|
# Postfix
|
2024-03-10 12:38:13 +01:00
|
|
|
postfix_dbs="client.access sender.access recipient.access header_kill"
|
2023-07-25 15:24:00 +02:00
|
|
|
for db in ${postfix_dbs}; do
|
|
|
|
if is_new "${db}"; then
|
|
|
|
download "${db}"
|
|
|
|
if check_integrity "${db}"; then
|
|
|
|
cp "${tmp_dir}/${db}" /etc/postfix/
|
|
|
|
if [ "${db}" != "header_kill" ]; then
|
|
|
|
/usr/sbin/postmap -r "/etc/postfix/${db}"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
>&2 echo "Integrity check failed for new ${db}."
|
|
|
|
rc=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
done
|
2017-10-24 15:09:14 +02:00
|
|
|
|
|
|
|
# SpamAssassin
|
2023-07-25 15:24:00 +02:00
|
|
|
sa_db="evolix_rules.cf"
|
|
|
|
if is_installed spamassassin; then
|
|
|
|
if is_new "${sa_db}"; then
|
|
|
|
download "${sa_db}"
|
|
|
|
if check_integrity "${sa_db}"; then
|
2023-07-28 12:00:31 +02:00
|
|
|
cp "${tmp_dir}/${sa_db}" /etc/spamassassin/
|
2023-07-25 15:24:00 +02:00
|
|
|
/etc/init.d/spamassassin reload > /dev/null
|
|
|
|
if [ -d /etc/spamassassin/sa-update-hooks.d ]; then
|
2017-10-24 15:09:14 +02:00
|
|
|
run-parts --lsbsysinit /etc/spamassassin/sa-update-hooks.d
|
2023-07-25 15:24:00 +02:00
|
|
|
fi
|
|
|
|
else
|
|
|
|
>&2 echo "Integrity check failed for ${sa_db}."
|
|
|
|
rc=1
|
2017-10-24 15:09:14 +02:00
|
|
|
fi
|
2023-07-25 15:24:00 +02:00
|
|
|
fi
|
2017-10-24 15:09:14 +02:00
|
|
|
fi
|
|
|
|
|
2023-07-25 15:24:00 +02:00
|
|
|
cleanup
|
|
|
|
|
|
|
|
exit "${rc}"
|
|
|
|
|
|
|
|
# Commenté car fichiers plus maintenus (cf. Reg)
|
|
|
|
## ClamAV
|
|
|
|
#cd $tmp
|
|
|
|
#wget -q -t 3 http://antispam00.evolix.org/spam/evolix.ndb -O evolix.ndb
|
|
|
|
#wget -q -t 3 http://antispam00.evolix.org/spam/evolix.ndb.md5 -O $tmp_file
|
|
|
|
#dpkg -l clamav-daemon 2>&1 | grep -v "no packages found matching" | grep -q ^ii && chown clamav: evolix.ndb
|
|
|
|
#if md5sum -c $tmp_file > /dev/null && [ -s evolix.ndb ] ; then
|
|
|
|
# dpkg -l clamav-daemon 2>&1 | grep -v "no packages found matching" | grep -q ^ii && cp -a evolix.ndb /var/lib/clamav/
|
|
|
|
#fi
|
|
|
|
#wget -q -t 3 http://antispam00.evolix.org/spam/evolix.hsb -O evolix.hsb
|
|
|
|
#wget -q -t 3 http://antispam00.evolix.org/spam/evolix.hsb.md5 -O $tmp_file
|
|
|
|
#dpkg -l clamav-daemon 2>&1 | grep -v "no packages found matching" | grep -q ^ii && chown clamav: evolix.hsb
|
|
|
|
#if md5sum -c $tmp_file > /dev/null && [ -s evolix.hsb ] ; then
|
|
|
|
# dpkg -l clamav-daemon 2>&1 | grep -v "no packages found matching" | grep -q ^ii && cp -a evolix.hsb /var/lib/clamav/
|
|
|
|
#fi
|
|
|
|
#dpkg -l clamav-daemon 2>&1 | grep -v "no packages found matching" | grep -q ^ii && /etc/init.d/clamav-daemon reload-database > /dev/null
|
|
|
|
#rm $tmp_file
|
|
|
|
#
|
|
|
|
#rm -rf $tmp
|