Настройка сервера · 4 min read · Nov 12, 2025

Qmail-Scanner с ClamAV и SpamAssassin на Ubuntu

Qmail-Scanner с ClamAV и SpamAssassin на Ubuntu

В продолжение моего документа https://www.howtoforge.com/qmail-openldap-on-ubuntu о настройке qmail-ldap на Ubuntu, этот документ поможет вам настроить Qmail-Scanner с антивирусом ClamAV и фильтром спама SpamAssassin для вашего сервера qmail.

Введение

Qmail-Scanner — это дополнение, которое позволяет серверу электронной почты Qmail сканировать электронные письма на наличие определенных характеристик. Обычно оно используется для функций защиты от вирусов и спама, в этом случае оно используется в сочетании с внешними сканерами. Оно также позволяет сайту (на уровне сервера/сайта) создавать “Политические блоки”: т.е. реагировать на электронные письма, содержащие определенные строки в конкретных заголовках, или конкретные имена файлов или типы вложений (например, вложения *.EXE даже в zip-файле).

Его архивные функции помогают интернет-провайдерам и корпорациям по всему миру с новыми или ожидающими законодательными и регуляторными требованиями. Он может архивировать все обработанные электронные письма в архивный maildir. Это идеально подходит для резервного копирования по причинам аудита политики. В отличие от некоторых решений на базе Windows, заголовки почтового конверта (заголовки “rcpt to:” и “mail from:”) остаются нетронутыми - добавляются в конец каждого сообщения - подтверждая истинные адреса отправителя и получателя. Архивирование также поддерживает фильтрацию по подмножеству адресов (например, архивировать только письма “[email protected]” вместо всех).

Мы свяжем spamassassin и clamav с qmailsacnner. Spamassassin — это фильтр электронной почты с открытым исходным кодом, написанный на Perl, для идентификации спама с использованием широкого спектра эвристических тестов на заголовках и тексте письма. Он также может использовать некоторые полезные плагины, такие как Pyzor, Razor и DCC. Clamav будет сканировать сообщения электронной почты на наличие вирусов.

Установка

Мы установим и настроим Qmail-Scanner, ClamAV и SpamAssassin с плагинами Pyzor, Razor и DCC.

Clam Antivirus

ClamAV — это движок антивируса с открытым исходным кодом, предназначенный для обнаружения троянов, вирусов, вредоносного ПО и других злонамеренных угроз. Это де-факто стандарт для сканирования почтовых шлюзов. Он предоставляет высокопроизводительный многопоточный демон сканирования, командные утилиты для сканирования файлов по запросу и интеллектуальный инструмент для автоматических обновлений сигнатур.

Загрузка

Скачайте последнюю версию с http://downloads.sourceforge.net/project/clamav:

wget http://nchc.dl.sourceforge.net/project/clamav/clamav/0.97/clamav-0.97.tar.gz

Установка и настройка ClamAV

cd /download  
tar zxvf clamav-0.97.tar.gz  
useradd -c "Qmail-Scanner Account" -s /bin/false qscand  
cd clamav-0.97  
./configure --with-user=qscand --with-group=qscand  
make && make install  
ldconfig -v

Теперь мы настраиваем его конфигурационные файлы, они следующие:

vi /usr/local/etc/clamd.conf
#Пример
LogFile /var/log/clamav/clamd.log
LogFileMaxSize 20M
LogTime yes
LogClean yes
LogSyslog yes
PidFile /var/run/clamav/clamd.pid
TemporaryDirectory /var/tmp
DatabaseDirectory /usr/local/share/clamav
LocalSocket /var/run/clamav/clamd.cl
MaxConnectionQueueLength 30
User qscand
MaxThreads 20
Scanmail yes

Теперь создайте несколько каталогов с правами владельца qscand:

mkdir /var/run/clamav  
chown -R qscand.qscand /var/run/clamav  
mkdir /var/log/clamav  
chown -R qscand.qscand /var/log/clamav  
chmod -R 755 /var/log/clamav

Таким образом, clamav успешно установлен.

/usr/local/sbin/clamd &
vi /usr/local/etc/freshclam.conf
#Пример
DatabaseDirectory /usr/local/share/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogSyslog yes
DatabaseOwner qscand
DNSDatabaseInfo current.cvd.clamav.net
DatabaseMirror database.clamav.net
DatabaseMirror db.in.clamav.net
NotifyClamd /usr/local/etc/clamd.conf

Сохраните и выйдите.

freshclam -v
crontab -e
25 1 * * * /usr/local/bin/freshclam -l /var/log/clamav/freshclam.log

SpamAssassin

SpamAssassin — это фильтр электронной почты для идентификации спама. Это интеллектуальный фильтр электронной почты, который использует разнообразные тесты для идентификации нежелательной массовой электронной почты, более известной как спам. Эти тесты применяются к заголовкам и содержимому электронной почты для классификации электронной почты с использованием передовых статистических методов.

Установка и настройка SpamAssassin

apt-get install spamassassin libdigest-sha1-perl libnet-dns-perl libmail-spf-query-perl libgeo-ip-perl libnet-ident-perl libio-socket-ssl-perl libio-socket-inet6-perl perl-modules
groupadd spamd  
useradd -g spamd -s /bin/false spamd
vi /etc/default/spamassassin
ENABLED=1
OPTIONS=" --user-config --username=spamd --max-children 5 --debug --helper-home-dir=/home/spamd"
vi /etc/mail/spamassassin/local.cf
required_score 5.0
dns_available yes
use_pyzor 1
use_razor2 1
use_bayes 1
bayes_auto_learn 1
bayes_file_mode 0700
include /etc/mail/spamassassin/autowhitelist
bayes_path /etc/mail/spamassassin/.spamassassin/bayes
bayes_auto_learn_threshold_nonspam       0.1
bayes_auto_learn_threshold_spam         12.0
ok_languages en hi
ok_locales en

Теперь запустите SpamAssassin…

/etc/init.d/spamassassin start

Теперь добавьте несколько плагинов..

Razor

cd /downloads/  
wget "http://citylan.dl.sourceforge.net/project/razor/razor-agents/2.85/razor-agents-2.85.tar.bz2"  
wget 'http://citylan.dl.sourceforge.net/project/razor/razor-agents-sdk/2.07/razor-agents-sdk-2.07.tar.bz2'
tar xvf razor-agents-sdk-2.07.tar.bz2  
cd razor-agents-sdk-2.07  
perl Makefile.PL  
make  
make test  
make install
cd /downloads/  
tar xvfj razor-agents-2.85.tar.bz2  
cd razor-agents-2.85  
perl Makefile.PL  
make  
make test  
make install

Убедитесь, что ваш брандмауэр разрешает порт tcp/2703.

razor-admin -home=/home/spamd/.razor -create  
razor-admin -home=/home/spamd/.razor -register  
razor-admin -home=/home/spamd/.razor -discover

DCC

cd /downloads/  
wget http://www.rhyolite.com/anti-spam/dcc/source/dcc.tar.Z
tar xvfz dcc.tar.Z  
cd dcc-1.3.120/  
./configure  
make && make install

Убедитесь, что ваш брандмауэр разрешает порт udp/6277.

Pyzor

cd /downloads/  
wget http://space.dl.sourceforge.net/project/pyzor/pyzor/0.5.0/pyzor-0.5.0.tar.gz
tar xvf pyzor-0.5.0.tar.gz  
cd pyzor-0.5.0  
python setup.py build  
python setup.py install  
python -c 'import gdbm' && echo 'gdbm found'

Запустите следующую команду для завершения установки pyzor.

pyzor --homedir /home/spamd discover
vi /etc/mail/spamassassin/v310.pre
включите строку
loadplugin Mail::SpamAssassin::Plugin::DCC
spamassassin –lint

Qmail-Scanner

cd /downloads/  
wget http://www.qmailrocks.org/downloads/qmail-scanner-1.25.tgz  
wget http://www.qmailrocks.org/downloads/qms-analog-0.4.2.tar.gz  
tar xvfz qmail-scanner-1.25.tgz  
tar zxvf qms-analog-0.4.2.tar.gz
cd qms-analog-0.4.2  
make all  
cp qmail-scanner-1.25-st-qms-20050219.patch ../qmail-scanner-1.25/  
cd ../qmail-scanner-1.25  
patch -p1 < qmail-scanner-1.25-st-qms-20050219.patch
vi qms-config
./configure --domain yourdomain.com \
--admin postmaster \
--local-domains "yourdomain.com" \
--add-dscr-hdrs yes \
--dscr-hdrs-text "X-Antivirus-YOURDOMAIN" \
--ignore-eol-check yes \
--sa-quarantine 0 \
--sa-delete 0 \
--sa-reject no \
--sa-subject ":SPAM:" \
--sa-alt yes \
--sa-debug yes \
--sa-report yes \
--notify "psender,admin" \
--redundant yes \
--unzip yes \
--qms-monitor no \
"$INSTALL"
chmod 755 qms-config  
./qms-config

Если конфигурация верна, то…

./qms-config install
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -z  
setuidgid qscand /var/qmail/bin/qmail-scanner-queue.pl -g
vi /var/qmail/bin/qmail-scanner-queue.pl
msg_size > 500000
chown -R qscand:qscand /var/spool/qmailscan
vi /service/qmail-smtpd/run
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" ; export QMAILQUEUE

Теперь перезапустите ваш сервер qmail и проверьте, работает ли все…

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.