Инструкции · 15 min read · Sep 24, 2025
SpamAssassin-ClamAV-Procmail-Howto
SpamAssassin-ClamAV-Procmail-Howto
Version 1.0
Author: Falko Timme
Этот документ описывает, как установить SpamAssassin (для фильтрации СПАМА) и ClamAV (для фильтрации вирусов, троянов, червей и т. д.) и как вызывать их с помощью рецептов procmail. Он подходит для сценариев, когда Sendmail или Postfix доставляют электронные письма локальным пользователям. Он должен работать (возможно, с небольшими изменениями, касающимися путей и т. д.) на всех *nix операционных системах. Я протестировал его на Debian Woody до сих пор.
В конце у вас будет система, где Sendmail или Postfix доставляют электронные письма локальному пользователю; письма передаются в procmail, который вызывает SpamAssassin и ClamAV для фильтрации писем перед их поступлением в почтовый ящик пользователя. Однако установка Sendmail и Postfix не охватывается в этом документе.
Этот howto предназначен как практическое руководство; он не охватывает теоретические основы. Они рассматриваются во многих других документах в сети.
Этот документ предоставляется без каких-либо гарантий!
Пожалуйста, обратите внимание: Если вы используете панель управления сервером 42go ISP-Manager, вам не нужно следовать этому руководству, так как 42go ISP-Manager поставляется с SpamAssassin и ClamAV, и оба могут быть настроены через 42go ISP-Manager!
1 Установите SpamAssassin
Существует несколько способов установки SpamAssassin. Я опишу три из них здесь:
| 1. | Установка с использованием Perl Shell Войдите в командную строку как root и выполните следующую команду, чтобы запустить Perl shell: perl -MCPAN -e shell Если вы запускаете Perl shell в первый раз, вам будет задано несколько вопросов. В большинстве случаев стандартные ответы подходят. Пожалуйста, обратите внимание: Если вы запускаете брандмауэр на вашей системе, вам может потребоваться отключить его во время работы в Perl shell, чтобы Perl shell мог получить необходимые модули без больших задержек. Вы можете включить его снова позже. Большое преимущество Perl shell по сравнению с двумя другими методами, описанными здесь, заключается в том, что он заботится о зависимостях при установке новых модулей. То есть, если выяснится, что отсутствует предварительно установленный модуль Perl при установке другого модуля, Perl shell спросит вас, следует ли установить предварительный модуль для вас. Вы должны ответить на этот вопрос «Да». Выполните следующие команды для установки SpamAssassin и некоторых других необходимых модулей: install HTML::Parser
install DB_File
install Net::DNS (когда вас попросят включить тесты, выберите нет)
install Digest::SHA1
install Mail::SpamAssassin
q (чтобы выйти из Perl shell) Если модуль уже установлен на вашей системе, вы получите сообщение, похожее на это: HTML::Parser актуален. Успешная установка модуля выглядит так: /usr/bin/make install – OK | | 2. | Установка из источников ( Пожалуйста, обратите внимание: Предварительно установленные модули Perl (по крайней мере HTML::Parser) должны быть установлены перед тем, как вы скомпилируете SpamAssassin из источников. Если они не установлены, установите их, используя один из двух других методов, описанных здесь, или получите источники с http://www.cpan.org и скомпилируйте их. Это похоже на шаги, описанные здесь для SpamAssassin.) cd /tmp
wget http://www.mirror.ac.uk/sites/spamassassin.taint.org/spamassassin.org
/released/Mail-SpamAssassin-2.63.tar.gz (1 строка)
tar xvfz Mail-SpamAssassin-2.63.tar.gz
cd Mail-SpamAssassin-2.63
perl Makefile.PL
make
make install | | 3. | Установка с использованием Webmin Если у вас установлен webmin ( http://www.webmin.com), вы можете использовать его для установки Perl Modules. Войдите в webmin, перейдите в Others -> Perl Modules и установите SpamAssassin:
Если вы получаете сообщения об ошибках, это в основном связано с тем, что некоторые предварительно установленные модули отсутствуют на вашей системе. Установите их (по крайней мере HTML::Parser требуется), а затем попробуйте снова установить модуль, который вы хотели установить в первую очередь. |
SpamAssassin будет установлен в /usr/local/share/spamassassin/.
2 Установите ClamAV
cd /tmp
groupadd clamav
useradd -g clamav -s /bin/false -c “Clam AntiVirus” clamav
wget http://heanet.dl.sourceforge.net/sourceforge/clamav/clamav-0.67.tar.gz
tar xvfz clamav-0.67.tar.gz
cd clamav-0.67
./configure –sysconfdir=/etc
( Пожалуйста, обратите внимание: ./configure –help дает список всех доступных параметров конфигурации.)
make
su -c “make install”
Если вы выполните
clamd
сейчас, вы получите сообщение об ошибке:
ERROR: Пожалуйста, отредактируйте пример конфигурационного файла /etc/clamav.conf.
Вы должны по крайней мере удалить директиву Example. Мой /etc/clamav.conf выглядит так:
| ## ## Пример конфигурационного файла для демона Clam AV ## Пожалуйста, прочитайте руководство clamav.conf(5) перед редактированием этого файла. ## # Закомментируйте или удалите строку ниже. #Example # Раскомментируйте эту опцию, чтобы включить ведение журнала. # LogFile должен быть доступен для записи пользователю, запускающему демон. # Полный путь обязателен. #LogFile /tmp/clamd.log # По умолчанию файл журнала заблокирован для записи - блокировка защищает от # многократного запуска clamd (если вы хотите запустить другой clamd, пожалуйста, # скопируйте конфигурационный файл, измените переменную LogFile и запустите # демон с опцией --config-file). Поэтому вам не следует раскомментировать # эту опцию. #LogFileUnlock # Максимальный размер файла журнала. По умолчанию 1 Мб. # Значение 0 отключает лимит. # Вы можете использовать 'M' или 'm' для мегабайт (1M = 1m = 1048576 байт) # и 'K' или 'k' для килобайт (1K = 1k = 1024 байт). Чтобы указать размер # в байтах, просто не используйте модификаторы. #LogFileMaxSize 2M # Время ведения журнала с каждым сообщением. #LogTime # Использовать системный журнал (может работать вместе с LogFile). #LogSyslog # Включить подробное ведение журнала. #LogVerbose # Эта опция позволяет вам сохранить идентификатор процесса слушающего # демона (главный поток). #PidFile /var/run/clamd.pid # Путь к каталогу, содержащему .db файлы. # По умолчанию это жестко закодированный каталог (в основном /usr/local/share/clamav, # это зависит от параметров установки). #DatabaseDirectory /var/lib/clamav # Демон работает в локальном или сетевом режиме. В настоящее время локальный режим # рекомендуется по соображениям безопасности. # Путь к локальному сокету. Демон не меняет режим созданного # файла (по соображениям портативности). Вы можете создать его в каталоге, # который доступен только пользователю, запускающему демон. LocalSocket /tmp/clamd # Удалить устаревший сокет после некорректного завершения. #FixStaleSocket # TCP порт адрес. #TCPSocket 3310 # TCP адрес. # По умолчанию мы связываемся с INADDR_ANY, что, вероятно, не мудро. # Включите следующее, чтобы обеспечить некоторую степень защиты # от внешнего мира. #TCPAddr 127.0.0.1 # Максимальная длина очереди ожидающих соединений. # По умолчанию 15. #MaxConnectionQueueLength 30 # Когда активировано, входной поток (см. команду STREAM) будет сохранен на диск перед # сканированием - это позволяет сканировать внутри архивов. #StreamSaveToDisk # Закрыть соединение, если этот лимит превышен. #StreamMaxLength 10M # Максимальное количество потоков, работающих одновременно. # По умолчанию 5, и этого должно быть достаточно для типичной рабочей станции. # Вам может потребоваться увеличить количество потоков для серверной машины. #MaxThreads 10 # Поток (сканер - одиночная задача) будет остановлен через это время (в секундах). # По умолчанию 180. Значение 0 отключает тайм-аут. СОВЕТ ПО БЕЗОПАСНОСТИ: Увеличьте # тайм-аут вместо того, чтобы отключать его. #ThreadTimeout 500 # Максимальная глубина, на которую сканируются каталоги. MaxDirectoryRecursion 15 # Следовать символическим ссылкам каталогов. # СОВЕТ ПО БЕЗОПАСНОСТИ: Вы должны включить лимит рекурсии каталогов, чтобы # избежать потенциальных проблем. #FollowDirectorySymlinks # Следовать символическим ссылкам на обычные файлы. #FollowFileSymlinks # Выполнять внутренние проверки (например, проверять целостность структур базы данных) # По умолчанию clamd проверяет себя каждые 3600 секунд (1 час). #SelfCheck 600 # Выполнить команду, когда вирус найден. В строке команды %v и %f будут # заменены именем вируса и именем зараженного файла соответственно. # # СОВЕТ ПО БЕЗОПАСНОСТИ: Убедитесь, что команда события вируса не может быть использована, # например, используя какое-либо специальное имя файла, когда используется %f. # Всегда используйте полный путь к команде. # Никогда не удаляйте/перемещайте файлы с помощью этой директивы ! #VirusEvent /usr/local/bin/send_sms 123456789 "ВИРУС АЛЕРТ: %f: %v" # Запускать от выбранного пользователя (clamd должен быть запущен от root). # По умолчанию он не сбрасывает привилегии. User clamav # Инициализировать доступ к дополнительным группам (для всех групп в /etc/group, # в которые добавлен пользователь. clamd должен быть запущен от root). #AllowSupplementaryGroups # Не форкаться в фоновый режим. Полезно при отладке. #Foreground # Включить отладочные сообщения в libclamav. #Debug ## ## Поддержка почты ## # Раскомментируйте эту опцию, если вы планируете сканировать почтовые файлы. ScanMail ## ## Поддержка архивов ## # Закомментируйте эту строку, чтобы отключить сканирование архивов. ScanArchive # По умолчанию встроенный распаковщик RAR отключен, потому что код # ужасно утечет, однако, вероятно, это хорошая идея включить его. #ScanRAR # Опции ниже защищают вашу систему от атак отказа в обслуживании # с архивными бомбами. # Файлы в архивах, превышающие этот лимит, не будут сканироваться. # Значение 0 отключает лимит. # ПРЕДУПРЕЖДЕНИЕ: Из-за реализации unrarlib, целые файлы (по одному) в RAR # архивах распаковываются в память. Вот почему никогда не отключайте # этот лимит (но вы можете увеличить его, конечно!) ArchiveMaxFileSize 10M # Архивы сканируются рекурсивно - например, если Zip-архив содержит RAR-файл, # RAR-файл также будет распакован (но только если лимит рекурсии установлен # хотя бы на 1). С этой опцией вы можете установить уровень рекурсии. # Значение 0 отключает лимит. ArchiveMaxRecursion 5 # Количество файлов, которые будут отсканированы внутри архива. # Значение 0 отключает лимит. ArchiveMaxFiles 1000 # Используйте более медленный алгоритм распаковки, который использует меньше памяти. Эта опция # влияет только на распаковщик bzip2. #ArchiveLimitMemoryUsage ## ## Настройки Clamuko ## ПРЕДУПРЕЖДЕНИЕ: Это экспериментальное программное обеспечение. Вероятно, оно зависнет ## вашу систему !!! ## # Включить Clamuko. Dazuko (/dev/dazuko) должен быть настроен и запущен. #ClamukoScanOnLine # Установить маску доступа для Clamuko. ClamukoScanOnOpen ClamukoScanOnClose ClamukoScanOnExec # Установить пути включения (все файлы в них будут отсканированы). Вы можете иметь # несколько опций ClamukoIncludePath, но каждый каталог должен быть добавлен # в отдельной опции. Все подкаталоги также сканируются. ClamukoIncludePath /home #ClamukoIncludePath /students # Установить пути исключения. Все подкаталоги также исключаются. #ClamukoExcludePath /home/guru # Ограничить размер файла для сканирования (вероятно, вы не хотите сканировать свои фильмы # ;)) # Значение 0 отключает лимит. 1 Мб должно быть нормально. ClamukoMaxFileSize 1M # Включить поддержку архивов. Она использует лимиты из раздела clamd. # (Эта опция не зависит от ScanArchive, вы можете иметь поддержку архивов # в clamd отключенной). # ClamukoScanArchive |
Теперь нам нужно создать скрипт инициализации для ClamAV ( /etc/init.d/clamd):
| #!/bin/bash TMPDIR=/tmp PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin case "$1" in start) echo "Запуск ClamAV..." if [ -S /tmp/clamd ]; then echo "ClamAV уже запущен!" else /usr/local/bin/freshclam -d -c 10 --datadir=/usr/local/share/clamav /usr/local/sbin/clamd fi echo "ClamAV теперь запущен!" ;; stop) echo "Выключение ClamAV..." array=(`ps ax | grep -iw '/usr/local/bin/freshclam' | grep -iv 'grep' \ | awk '{print $1}' | cut -f1 -d/ | tr ' ' ' '`) element_count=${#array[@]} index=0 while [ "$index" -lt "$element_count" ] do kill -9 ${array[$index]} let "index = $index + 1" done array=(`ps ax | grep -iw '/usr/local/sbin/clamd' | grep -iv 'grep' \ | awk '{print $1}' | cut -f1 -d/ | tr ' ' ' '`) element_count=${#array[@]} index=0 while [ "$index" -lt "$element_count" ] do kill -9 ${array[$index]} let "index = $index + 1" done if [ -S /tmp/clamd ]; then rm -f /tmp/clamd fi echo "ClamAV остановлен!" ;; restart) $0 stop && sleep 3 $0 start ;; *) echo "Использование: $0 {start|stop|restart}" exit 1 esac exit 0 |
chmod 755 /etc/init.d/clamd
Теперь мы запускаем ClamAV:
/etc/init.d/clamd start
Если вы выполните
ps aux
вы теперь заметите несколько процессов clamd (которые используют сокет /tmp/clamd) и процесс freshclam, который отвечает за получение последних обновлений вирусных сигнатур. Они находятся в /usr/local/share/clamav. Команда * /usr/local/bin/freshclam -d -c 10 –datadir=/usr/local/share/clamav*
в нашем скрипте инициализации clamd гарантирует, что freshclam проверяет наличие новых сигнатур 10 раз в день.
Чтобы запустить ClamAV при загрузке, выполните следующее:
ln -s /etc/init.d/clamd /etc/rc2.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc3.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc4.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc5.d/S20clamd
ln -s /etc/init.d/clamd /etc/rc0.d/K20clamd
ln -s /etc/init.d/clamd /etc/rc1.d/K20clamd
ln -s /etc/init.d/clamd /etc/rc6.d/K20clamd
3 Установите trashscan
trashscan - это shell-скрипт, который устанавливает связь между procmail и ClamAV (т.е. когда приходит электронное письмо, procmail вызывается, который сам вызывает trashscan, чтобы просканировать почту на наличие вирусов с помощью ClamAV). Он поставляется с ClamAV.
*cd /tmp/clamav-0.67/contrib/trashscan
tar xvfz trashscan-0.08.tar.gz
cd trashscan-0.08
- cp -pf trashscan /usr/local/sbin/
Теперь нам нужно настроить некоторые переменные в разделе “Settinx” файла /usr/local/sbin/trashscan. Мои настройки следующие:
| #!/bin/bash # # TrashScan v0.08; Сканирование электронной почты на наличие вирусов # ZapCoded by Trashware; 13.10.2002 # Email: [email protected] # Web: http://trashware.mirrorz.com # PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin # --------------------------------------- Начало Settinx ---------------------------------------- # SCANDIR=$HOME/tmp # Временный каталог для сканирования вирусов. # Безопасность: Не определяйте общедоступные # доступные каталоги здесь !!! # $HOME/tmp должно быть нормально. #DECODER=metamail # Декодер: "metamail" или "uudeview" #DECODPRG=metamail # Абсолютный путь к декодеру: metamail DECODER=uudeview # Декодер: "metamail" или "uudeview" DECODPRG=/usr/local/bin/uudeview # Абсолютный путь к декодеру: uudeview VSCANPRG=/usr/local/bin/clamscan # Абсолютный путь к вирусному сканеру VSCANOPT="--quiet --tempdir=$HOME/tmp --recursive --max-files=500 \ --max-space=30M --unzip=/usr/bin/unzip --unrar=/usr/bin/unrar \ --unarj=/usr/bin/unarj --zoo=/usr/bin/zoo --lha=/usr/bin/lha \ --jar=/usr/bin/unzip --tar=/bin/tar --tgz=/bin/tar" # Параметры для вирусного сканера. # Безопасность: Не выбирайте общедоступные # доступные каталоги для # определения --tempdir !!! # --tempdir=$HOME/tmp должно быть нормально. VSCANVEX=1 # Код выхода вирусного сканера, если # вирус был найден VSCANSUSP=mail.virus # Файл для хранения подозрительной почты (см. # procmail.trashscan) FORMAIL=formail # Абсолютный путь к formail PROCMAIL=procmail # Абсолютный путь к procmail SENDMAIL=sendmail # Абсолютный путь к sendmail CAT=cat # Абсолютный путь к cat GREP=grep # Абсолютный путь к grep LOGGER=logger # Абсолютный путь к logger LOGPRIO=mail.warn # Уровень журнала для logger MKDIR=mkdir # Абсолютный путь к mkdir RM=rm # Абсолютный путь к rm SED=sed # Абсолютный путь к sed [email protected] # Получатель сообщений о вирусах [email protected] # Отправитель сообщений о вирусах [email protected] # Человек для контакта (появляется в # теле письма о вирусе) # ---------------------------------------- Конец Settinx ---------------------------------------- # |
Обратите внимание, что я установил переменную PATH в начале скрипта:
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
Это позволяет мне не указывать абсолютный путь большинства программ, необходимых trashscan (например, formail, procmail, sendmail), пока они находятся в PATH.
VSCANOPT указывает пути к некоторым программам, необходимым для распаковки файлов в различных форматах сжатия (если электронное письмо приходит с сжатым вложением, например zip, tar.gz). Вам не нужны все программы, но я рекомендую, чтобы у вас были установлены хотя бы unzip и tar (если у вас их нет, используйте http://www.rpmfind.net для поиска unzip и tar, если вы используете дистрибутив на основе rpm, и установите соответствующие пакеты с помощью
rpm -ivh name-of-package.rpm
Если вы используете Debian, все, что вам нужно сделать, это
apt-get install unzip tar ).
Обязательно укажите правильный адрес электронной почты человека, который будет получать уведомление, если вирус будет найден.
4 Установите uudeview
trashscan нуждается в программе для декодирования электронных сообщений. В настройках trashscan, указанных выше, я указал, что trashscan должен использовать uudeview, который мы сейчас установим.
cd /tmp
wget http://www.fpx.de/fp/Software/UUDeview/download/uudeview-0.5.19.tar.gz
tar xvfz uudeview-0.5.19.tar.gz
cd uudeview-0.5.19
./configure
make
make install
5 Настройте Procmail
procmail обычно установлен по умолчанию на большинстве дистрибутивов, поэтому я не буду охватывать установку procmail здесь. Выполните
which procmail
чтобы узнать, где находится ваш procmail (в моем случае это /usr/bin/procmail).
Теперь я покажу, как настроить procmail для пользователя testuser, который имеет свою домашнюю директорию в /home/www/web1/user/testuser. Убедитесь, что ни один из каталогов в этом пути ( /home, /home/www, /home/www/web1, /home/www/web1/user, /home/www/web1/user/testuser) не имеет прав на запись для группы или всех пользователей. Они должны иметь права rwxr-xr-x (или 755). В противном случае procmail может отказать в правильной работе!
Сначала мы должны создать файл /home/www/web1/user/testuser/.forward, чтобы procmail вызывался, когда приходит почта для testuser. Он имеет следующее содержимое:
| "|/usr/bin/procmail -f-" |
chown testuser /home/www/web1/user/testuser/.forward
chmod 600 /home/www/web1/user/testuser/.forward
Теперь мы создаем файл /home/www/web1/user/testuser/.procmailrc. Это файл, в котором procmail будет искать рецепты (т.е. команды для выполнения). Для ясности мы просто включаем наши основные рецепты в этот файл:
| ## MAILDIR=$HOME/Maildir/ ## DEFAULT=$MAILDIR INCLUDERC=/home/www/web1/user/testuser/.antivirus.rc INCLUDERC=/home/www/web1/user/testuser/.html-trap.rc INCLUDERC=/home/www/web1/user/testuser/.spamassassin.rc |
( Пожалуйста, обратите внимание: Раскомментируйте первые две строки, если вы используете Maildir для своих электронных писем, т.е. ваши электронные письма хранятся в /home/www/web1/user/testuser/Maildir/ вместо /var/spool/mail.)
Наш первый рецепт - /home/www/web1/user/testuser/.antivirus.rc:
| # # конфигурация procmail для TrashScan: ZapCoded by Trashware; 13.10.2002 # # [ ... ] # ------------------------------------------------------------------------------------- # # Раздел сканирования вирусов ... # # ------------------------------------------------------------------------------------- # # 1. Запустите TrashScan :0 * multipart * !^X-Virus-Scan: | /usr/local/sbin/trashscan # 2. Фильтровать помеченные вирусные письма :0: * ^X-Virus-Scan: Подозрительный /dev/null |
/home/www/web1/user/testuser/.html-trap.rc обсуждается ниже, поэтому нашим вторым рецептом является /home/www/web1/user/testuser/.spamassassin.rc:
| # Пример procmailrc для SpamAssassin # # Пропустите почту через spamassassin (замените 'spamassassin' на 'spamc' # если вы используете комбинацию spamc/spamd) # Строка условия гарантирует, что только сообщения меньше 250 кБ # (250 * 1024 = 256000 байт) обрабатываются SpamAssassin. Большинство спама # не больше нескольких кб, и работа с большими сообщениями может привести # SpamAssassin к коленям. :0fw * < 256000 | /usr/local/bin/spamassassin --prefs-file=/home/www/web1/user/testuser/.user_prefs # Вся почта, помеченная как спам (например, с оценкой выше установленного порога) # перемещается в "/dev/null". #:0: #* ^X-Spam-Status: Да #/dev/null # Обойти ошибку procmail: любой вывод на stderr приведет к тому, что "F" в "From" # будет потерян. Это восстановит его. :0 * ^^rom[ ] { LOG="*** Удален F из заголовка From_! Исправляем. " :0 fhw | sed -e '1s/^/F/' } |
Это приведет к тому, что все электронные письма будут приниматься, даже СПАМ (который будет помечен как СПАМ и может быть отсортирован почтовым клиентом пользователя). Эта стратегия рекомендуется на первом этапе, пока вы не уверены, что SpamAssassin правильно идентифицирует ваши электронные письма. Если вы хотите удалить СПАМ, возьмите этот .spamassassin.rc вместо:
| # Пример procmailrc для SpamAssassin # # Пропустите почту через spamassassin (замените 'spamassassin' на 'spamc' # если вы используете комбинацию spamc/spamd) # Строка условия гарантирует, что только сообщения меньше 250 кБ # (250 * 1024 = 256000 байт) обрабатываются SpamAssassin. Большинство спама # не больше нескольких кб, и работа с большими сообщениями может привести # SpamAssassin к коленям. :0fw * < 256000 | /usr/local/bin/spamassassin --prefs-file=/home/www/web1/user/testuser/.user_prefs # Вся почта, помеченная как спам (например, с оценкой выше установленного порога) # перемещается в "/dev/null". :0: * ^X-Spam-Status: Да /dev/null # Обойти ошибку procmail: любой вывод на stderr приведет к тому, что "F" в "From" # будет потерян. Это восстановит его. :0 * ^^rom[ ] { LOG="* Удален F из заголовка From_! Исправляем. " :0 fhw | sed -e '1s/^/F/' } |
Затем мы создаем файл /home/www/web1/user/testuser/.user_prefs, который будет содержать настройки SpamAssassin для testuser:
| # Файл пользовательских предпочтений SpamAssassin. См. 'perldoc Mail::SpamAssassin::Conf' # для подробностей о том, что можно настроить. ########################################################################### # Сколько баллов нужно, чтобы почта считалась спамом. required_hits 5.0 rewrite_subject 1 subject_tag *SPAM*** |
SpamAssassin выполняет ряд тестов на каждом электронном письме, чтобы определить, является ли оно СПАМом или нет. Каждый тест присваивает определенное количество баллов этому электронному письму (если тест положительный). Баллы будут добавлены. required_hits - это количество баллов, выше которого электронное письмо считается СПАМом. 5.0 - это разумное значение для начала.
Если rewrite_subject равно 1, тема электронного письма будет помечена значением subject_tag, если электронное письмо считается СПАМом, чтобы электронное письмо могло быть отсортировано почтовым клиентом testuser, если он выбрал соответствующий .spamassassin.rc выше.
6 Настройте Email Sanitizer
Email Sanitizer ( http://www.impsec.org/email-tools/procmail-security.html) - это набор рецептов procmail, которые образуют своего рода фильтр содержимого. Например, он может деактивировать вредоносный javascript-код в HTML-письмах и переименовывать подозрительные вложения (например, example.exe переименовывается в example.12345DEFANGED-exe, чтобы его нельзя было открыть простым двойным щелчком под Windows. Его нужно сначала сохранить на диск, а затем переименовать сознательно. Таким образом, получатель вынужден задуматься, следует ли ему открывать вложение.).
cd /tmp
wget http://www.impsec.org/email-tools/html-trap.procmail.gz
gunzip html-trap.procmail.gz
echo ‘PATH=”/usr/bin:$PATH:/usr/local/bin”‘ > /home/www/web1/user/testuser/.html-trap.rc
echo ‘SHELL=/bin/sh’ >> /home/www/web1/user/testuser/.html-trap.rc
cat html-trap.procmail >> /home/www/web1/user/testuser/.html-trap.rc
7 Протестируйте вашу конфигурацию
Теперь вы можете протестировать вашу конфигурацию, отправив .exe вложения, образцы СПАМА и образцы вирусов (если у вас есть).
Посмотрите на заголовок полученных электронных писем. Он должен содержать следующие строки:
X-Security: MIME заголовки очищены на server1.example.com См. http://www.impsec.org/email-tools/sanitizer-intro.html для подробностей. $Revision: 1.140 $Date: 2004-02-11 20:47:43-08
X-Virus-Scan: Просканировано TrashScan v0.08, работающим на server1.example.com
X-Spam-Checker-Version: SpamAssassin 2.63 (2004-01-11) на server1.example.com
Ссылки
SpamAssassin: http://www.spamassassin.org/
ClamAV: http://www.clamav.net/
Procmail: http://www.procmail.org/
Email Sanitizer: http://www.impsec.org/email-tools/procmail-security.html
Оригинальное местоположение этого документа:
http://www.falkotimme.com/howtos/spamassassin_clamav_procmail/
Get new posts in your inbox
No spam. Unsubscribe anytime.