Почтовый сервер с защитой от спама и вирусов на основе FreeBSD::Журнал СА 1.2004
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6143
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6856
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4139
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6283
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3434
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13969
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9100
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7053
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5362
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4594
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3402
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3128
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3378
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 2999
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Почтовый сервер с защитой от спама и вирусов на основе FreeBSD

Архив номеров / 2004 / Выпуск №1 (14) / Почтовый сервер с защитой от спама и вирусов на основе FreeBSD

Рубрика: Администрирование /  Электронная почта

ГЕННАДИЙ ДМИТРИЕВ

Почтовый сервер с защитой от спама и вирусов
на основе FreeBSD

В данной статье будет описана процедура настройки почтового сервера для фильтрации спама и проверки входящей и исходящей почты на вирусы. В качестве базовой системы я использовал связку FreeBSD 5.1 + Sendmail + SpamAssassin + Kaspersky Antivirus.

Так сложилось, что изучать UNIX-системы я начал именно с FreeBSD, и много позже довелось настраивать многие Linux-системы. На мой взгляд, очень субъективный, FreeBSD имеет самую грамотную организацию. Что касается почтовой программы Sendmail, с давних пор использую её в качестве базовой, остальные пакеты – SpamAssassin, Kaspersky Antivirus и модули для подключения к почтовому серверу были выбраны экспериментально. С десяток компонентов, перепробованных мной, либо некорректно работали, либо давали неприемлемый результат.

Вы можете легко использовать данный документ, настраивая систему на FreeBSD 4.5-4.9, 5.0, но важным звеном является обновление дерева портов, поскольку в прошлых версиях FreeBSD многие модули отсутствуют. Обновив дерево портов, вы получите доступ в этим модулям.

Ограничения по количеству обслуживаемых пользователей на саму систему вряд ли распространяются. Они устанавливаются только железом. Сервер P4 512 Мб RAM 18 Гб SCSI HDD может легко обслужить 4-5 сотен пользователей. В частности, мой сервер P100 64 Мб RAM 540 Мб + 1 Гб SCSI HDD обслуживает 50 пользователей. Правда с трудом, но помимо почтовой системы на нём стоит Squid, Apache, Bind и много чего ещё.

Итак, выбор данных компонентов обусловлен:

  • наличием модулей в стандартных портах FreeBSD;
  • достаточно легко настраивается;
  • имеет адаптивную систему обучения;
  • имеет несколько сотен параметров настройки, с помощью которых можно подстраивать систему под ваши требования;
  • в процессе своей работы система самостоятельно обучается. Вам достаточно будет следить и корректировать входные параметры.

Статья рассчитана на хорошо подготовленного пользователя. Поэтому, если вы не знакомы с UNIX-системами, вряд ли она вам чем-нибудь поможет.

Итак, вся процедура состоит из нескольких частей:

  • Обновление дерева портов.
  • Обновление почтового демона.
  • Установка и настройка демона spamd, который разбирает сообщение по кусочкам и ставит спам-балл. Если балл превышает некую цифру, которую вы можете изменять, письмо преобразуется определенным образом.
  • Установка и настройка milter (spamass-milter) для почтового демона. Он будет передавать сообщение демону spamd и принимать его обратно, пересылая дальше по цепочке.
  • Установка и настройка Kaspersky Antivirus. В пояснении не нуждается.
  • Установка и настройка milter (kavmilter) для почтового демона. Он будет передавать сообщение Kaspersky Antivirus.
  • Настройка самого почтового демона.
  • Обучение системы.
  • Последние штрихи, ссылки и благодарности.

Обновление дерева портов

Для начала обновим дерево портов:

cd /home/user

mkdir cvsup

cd cvsup

Далее в домашнем каталоге создаем для большего удобства два файла. Один со списком обновляемых портов, другой со скриптом запуска.

cd /home/user

mkdir cvsup

cd cvsup

vi cvsup.ports

# =====начало файла cvsup.ports=========

*default  host=cvsup.FreeBSD.org

*default  base=/usr

*default  prefix=/usr

*default  release=cvs

*default  tag=.

*default  delete use-rel-suffix compress

ports-mail

ports-net

ports-security

ports-sysutils

ports-www

# =====конец файла cvsup.ports==========

Здесь вы можете обновлять все порты, систему, если вам это необходимо. Для меня было достаточно этих портов.

vi cvsup.sh

# =======начало файла cvsup.sh==========

#!/bin/sh

/usr/local/bin/cvsup -g -L 2 cvsup.ports

# =======конец файла cvsup.sh===========

chmod +x cvsup.sh

Из обновленных портов понадобится поставить следующие (технология стандартная, make & make install):

/usr/ports/mail/sendmail

/usr/ports/mail/p5-Mail-SpamAssassin

/usr/ports/mail/spamass-milter

/usr/ports/mail/kavmilter

Обновление почтового демона (/usr/ports/mail/sendmail)

Поскольку изначально в FreeBSD 5.1 ставится Sendmail 8.12.9, обновим его до 8.12.10 из портов. После установки его будет удобно собирать отсюда:

/usr/ports/mail/sendmail/work/sendmail-8.12.10/cf/cf

Как – поясню чуть позже. Дополнительно в каталоге /usr/ports/mail/sendmail необходимо сделать:

make mailer.conf

Установка и настройка демона spamd (/usr/ports/mail/p5-Mail-SpamAssassin)

Далее, с sendmail все понятно. Для остальных портов небольшие пояснения.

Основной демон, фильтрующий вашу почту – spamd. Его конфигурационный файл находится здесь:

/usr/local/etc/mail/spamassassin/local.cf

# ==========начало файла local.cf========

# don't use agent

use_razor2 0

use_dcc    0

use_pyzor  0

# check rdl

skip_rbl_checks 0

# autowhitelist

use_auto_whitelist   1

auto_whitelist_path  /var/spool/filter/.spamassassin/auto_whitelist

# bayes

use_bayes   1

bayes_path  /var/spool/filter/.spamassassin/bayes

bayes_expiry_max_db_size  1500000

auto_learn   1

ok_languages en ru de

ok_locales   en ru de

# rewrite subject

rewrite_subject         1

subject_tag             *SPAM*_HITS_ points* :

required_hits           3.5

# user rules

allow_user_rules        0

# report options

always_add_report       1

report_safe             0

report_charset          koi8-r

# score options

score FROM_ILLEGAL_CHARS        1.5

score HEAD_ILLEGAL_CHARS        1.5

score SUBJ_ILLEGAL_CHARS        1.5

score SUBJ_HAS_SPACES           2.5

score NO_REAL_NAME              1.0

score PENIS_ENLARGE             3.5

score PENIS_ENLARGE2            3.5

score FROM_HAS_MIXED_NUMS       1.0

score FORGED_IMS_TAGS           0.5

# network whitelist

whitelist_from  localhost

whitelist_to    spam@mycompany.ru

# ==========конец файла local.cf=========

Файл /usr/local/etc/rc.d/spammerdaemon.sh. Собственно скрипт, запускающий сам демон. Обратите внимание на два параметра. Первый -u filter означает, что демон запускается от некоего виртуального пользователя, имеющего ограниченные права. Про самого пользователя чуть ниже. Второй параметр -s local5. Это вывод сообщений в другой файл-лог. Изначально демон spamd все пишет в maillog. Мне это не понравилось, я вывел сообщения от него в другой файл. Так удобнее анализировать. В принципе я бы вообще его отключил, да вот в документации не нашел как.

# =========начало файла spammerdaemon.sh==

#!/bin/sh

case "$1" in

start)

kill `ps ax | grep spamd | grep -v grep | awk '{print $1}' | head -1` >/dev/null 2>/dev/null && echo -n ' spamd'

[ -x /usr/local/bin/spamd ] && /usr/local/bin/spamd -d -a -u filter -x -s local5 && echo -n ' spamd'

;;

stop)

kill `ps ax | grep spamd | grep -v grep | awk '{print $1}' | head -1` >/dev/null 2>/dev/null && echo -n ' spamd'

;;

*)

echo "Usage: `basename $0` {start|stop}" >&2

;;

esac

exit 0

# =========конец файла spammerdaemon.sh===

Стоит добавить пользователя filter, группу filter, создать каталог /var/spool/filter и назначить пользователя filter его владельцем.

Vipw

filter:*:1025:1025::0:0:Mail Filter:/var/spool/filter: /sbin/nologin

vi /etc/group

filter:*:1025:filter

mkdir /var/spool/filter

chown filter:filter /var/spool/filter

Как я уже говорил, мне удобнее, когда сообщения от разных демонов пишутся в разные лог-файлы. Поэтому, чтобы перенаправить сообщения от spamd в другой файл, создадим пустой файл spamd.log:

cd /var/log

cat >./spamd.log

chown filter:filter spamd.log

И скорректируем содержимое двух файлов syslog.conf и newsyslog.conf:

# ========добавка в файл syslog.conf======

local5.*    /var/log/spamd.log

# =========конец файла syslog.conf========

 

# ======добавка в файл newsyslog.conf=====

/var/log/spamd.log   filter:filter  640  3  2000 * Z

# =======конец файла newsyslog.conf=======

Установка и настройка milter (spamass-milter) для почтового демона (/usr/ports/mail/spamass-milter)

Собственно сам демон, разбирающий почту по косточкам, готов. Перейдем к настройкам milter, который будет передавать письмо от sendmail к spamd. При установке spamass-milter файл, объясняющий процедуру активизации фильтра, лежит здесь: /usr/local/share/doc/spamass-milter/activation.txt. Из всего этого я вынес для себя только одну полезную строчку:

INPUT_MAIL_FILTER(`spamassassin", `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m")

Её надо будет добавить в ваш конфигурационный файл Sendmail. Ну и собственно скрипт для запуска milter-фильтра. Там ничего сложного нет. Единственное изменение, которое я сделал, – добавил в скрипт адрес, на который будет пересылаться почта, идентифицированная как «СПАМ».

/usr/local/etc/rc.d/spamass-milter.sh

# =======начало файла spamass-milter.sh===

#!/bin/sh

DAEMON=/usr/local/sbin/spamass-milter

SOCKET=/var/run/spamass-milter.sock

PIDFILE=/var/run/spamass-milter.pid

SPAMADRESS=spam@mycompany.ru

case "$1" in

start)

if [ -f "${DAEMON}" -a -x "${DAEMON}" ]

then

"${DAEMON}" -b "${SPAMADRESS}" -p "${SOCKET}" -f &

echo $! > "${PIDFILE}"

sleep 1

kill -HUP `head -1 /var/run/sendmail.pid`

echo -n " spamass-milter running"

fi

;;

stop)

if [ -f "${PIDFILE}" ]

then

read -r pid junk < "${PIDFILE}"

kill ${pid}

rm -f "${SOCKET}" "${PIDFILE}"

sleep 1

kill -HUP `head -1 /var/run/sendmail.pid`

echo -n " spamass-milter stopped"

fi

;;

esac

# ========конец файла spamass-milter.sh===

Установка и настройка Kaspersky Antivirus

С настройками фильтров, определяющих наличие спама в сообщениях, покончено. Перейдем к установке Kaspersky Antivirus и milter для Sendmail. Соответственно качаем:

  • kav-MailServer-4.0.4.0-FreeBSD-4.x.tgz
  • tar xzvf kav-MailServer-4.0.4.0-FreeBSD-4.x.tgz
  • pkg_add kav-WorkStationSuite-4.0.4.0-FreeBSD-4.x.tgz

Из всего, что поставится в каталог /usr/local/share/AVP, интересны только эти файлы:

  • kavdaemon
  • kavscanner
  • defUnix.prf
  • AvpUnix.ini

Содержание конфигурационных файлов:

# =======начало файла AvpUnix.ini=========

[AVP32]

DefaultProfile=/usr/local/share/AVP/defUnix.prf

[Configuration]

KeysPath=/usr/local/share/AVP

SetFile=avp.set

BasePath=/usr/local/share/AVP/Bases

SearchInSubDir=No

UpdatePath=http://downloads2.kaspersky-labs.com/updates/

# ========конец файла AvpUnix.ini=========

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

# =======начало файла defUnix.ini=========

# same section with parameters for objects

[Object]

Names=*/home;*/tmp;*/var/tmp;/usr/src;/mnt/cdrom;/usr/tmp;/tmp/kav

Memory=No

Sectors=No

ScanAllSectors=No

Files=Yes

FileMask=2

UserMask=*.tar.gz

ExcludeFiles=0

ExcludeMask=*.txt *.cmd

ExcludeDir=

Packed=Yes

Archives=Yes

SelfExtArchives=Yes

MailBases=Yes

MailPlain=Yes

Embedded=Yes

InfectedAction=3

BackupInfected=No

IfDisinfImpossible=1

Warnings=Yes

CodeAnalyser=Yes

RedundantScan=No

SubDirectories=Yes

CrossFs=Yes

# global(common) options sections

[Options]

ScanRemovable=Yes

ScanSubDirAtEnd=No

ParallelScan=No

LimitForProcess=16

EndlesslyScan=No

ScanDelay=-1

Symlinks=1

[Report]

Report=Yes

UseSysLog=No

ReportFileName=/var/log/kav/kavscan.rpt

Append=Yes

ReportFileLimit=Yes

ReportFileSize=500

RepCreateFlag=600

ExtReport=No

WriteTime=Yes

WriteExtInfo=No

UseCR=No

RepForEachDisk=No

LongStrings=Yes

UserReport=No

UserReportName=/var/log/kav/userreport.log

# Showing objects

ShowOK=No

ShowPack=No

ShowPassworded=No

ShowSuspision=No

ShowWarning=No

ShowCorrupted=No

ShowUnknown=No

# Action with infected files

[ActionWithInfected]

InfectedCopy=No

# Action with suspicion files

[ActionWithSuspicion]

SuspiciousCopy=No

# Action with corrupted files

[ActionWithCorrupted]

CorruptedCopy=No

[TempFiles]

UseMemoryFiles=Yes

LimitForMemFiles=6000

MemFilesMaxSize=20000

TempPath=/tmp

[Priority]

Father=0

Child=0

[Customize]

Sound=No

UpdateCheck=No

UpdateInterval=90

OtherMessages=No

RedundantMessage=No

DeleteAllMessage=No

ExitOnBadBases=Yes

UseExtendedExitCode=Yes

# ========конец файла defUnix.ini=========

Здесь я кое-что изменил. Во-первых, при установке Kaspersky Antivirus он пытается свои конфигурационные файлы поместить в /etc/Avp. Мне это не понравилось, я выкинул оттуда все и поместил в домашний каталог Kaspersky Antivirus: /usr/local/share/AVP. Далее создал два каталога, где будут храниться лог-файлы и временные файлы для проверки на вирусы.

mkdir /var/log/kav

mkdir /tmp/kav

Установка и настройка milter (kavmilter) для почтового демона (/usr/ports/mail/kavmilter)

Процедура все та же: make & make install.

При установке kavmilter создаются три файла, один файл запуска самого kavmilter, второй файл запуска демона kavdaemon, третий конфигурационный. Там много изменений, потому просто содержимое файлов:

/usr/local/etc/kavmilter.conf

# =======начало файла kavmilter.conf========

SendmailPipe = /var/run/kavmilter

KAVPipe = /var/run/AvpCtl

PIDFile = /var/run/kavmilter.pid

TempDirectory = /tmp/kav

KAVTimeout = 60

SendmailTimeout = 300

DebugLevel = 0

DaemonMode = yes

InfectedAction = discard

# ========конец файла kavmilter.conf========

# =======начало файла kavmilter.sh==========

#!/bin/sh

PREFIX=/usr/local/libexec

PIPE=/var/run/kavmilter

KAVPIPE=/var/run/AvpCtl

PIDFILE=/var/run/kavmilter.pid

TEMPDIR=/tmp/kav

DPARMS="-D 0"

case "$1" in

start)

rm -f ${PIPE} > /dev/null && ї

    ${PREFIX}/kavmilter ${DPARMS} > /dev/null && echo -n ' kavmilter'

;;

stop)

killall -TERM kavmilter > /dev/null && rm -f ${PIPE} && rm -f ${PIDFILE} && echo "kavmilter stopped"

;;

restart)

killall -TERM kavmilter > /dev/null && rm -f ${PIPE} && rm -f ${PIDFILE} && sleep 5 && ${PREFIX}/kavmilter ${DPARMS} > /dev/null && \

echo "kavmilter restarted"

;;

*)

echo "Usage: `basename $0` {start|stop|restart}" >&2

;;

esac

exit 0

# ========конец файла kavmilter.sh==========

При установке Kaspersky Antivirus в /usr/local/etc/rc.d/ создается файл kavd.sh. Я его удалил, вместо него следует использовать другой, что ставится вместе с kavmilter. Некоторые строки мною изменены, потому просто содержимое файла /usr/local/etc/rc.d/kavdaemon.sh:

# =======начало файла kavdaemon.sh==========

#!/bin/sh

PREFIX="/usr/local/share/AVP"

BINDIR="/usr/local/share/AVP"

AVPDIR="/tmp/kav"

AVPPIPE="/var/run"

DPARMS="-Y -f=$AVPPIPE -MP -dl -MD -I0 -o{$AVPDIR} $AVPDIR"

case "$1" in

start)

$BINDIR/kavdaemon $DPARMS  && echo -n ' kavdaemon'

;;

stop)

[ -f $AVPDIR/AvpPid ] && $BINDIR/kavdaemon -ka > /dev/null && echo "kavdaemon terminated"

;;

restart)

[ -f $AVPDIR/AvpPid ] && $BINDIR/kavdaemon -ka > /dev/null && $BINDIR/kavdaemon $DPARMS > dev/null && echo 'kavdaemon restarted'

;;

*)

echo "Usage: `basename $0` {start|stop|restart}" >&2

;;

esac

exit 0

# ========конец файла kavdaemon.sh==========

Настройка самого почтового демона

Настройка sendmail для фильтрации почты от спама, вирусов и прочее. Переходим в каталог с конфигурационными файлами sendmail:

cd /usr/ports/mail/sendmail/work/sendmail-8.12.10/cf/cf

Создаем файл main.mc следующего содержания:

# =======начало файла main.mc===============

divert(-1)

divert(0)

include(`../m4/cf.m4')

VERSIONID(`$FreeBSD: src/etc/sendmail/freebsd.mc, v 1.10.2.11 2001/07/14 18:07:27 gshapiro Exp $')

OSTYPE(freebsd5)

DOMAIN(generic)

FEATURE(`no_default_msa')

DAEMON_OPTIONS(`Port=smtp, Name=MTA')

FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')

FEATURE(blacklist_recipients)

FEATURE(local_lmtp)

FEATURE(mailertable, `hash -o /etc/mail/mailertable')

FEATURE(relay_based_on_MX)

FEATURE(virtusertable, `hash -o /etc/mail/virtusertable')

dnl Realtime Blocking List - AntiSpam Control

dnl FEATURE(dnsbl)

dnl FEATURE(dnsbl, `relays.osirusoft.com', `Mail rejected - see http://relays.osirusoft.com/')

FEATURE(dnsbl,`relays.ordb.org',`Mail rejected - see http://ordb.org/')

FEATURE(dnsbl,`blackholes.easynet.nl',`Mail rejected - see http://blackholes.easynet.nl/')

dnl FEATURE(dnsbl,`inputs.orbz.org', `Mail rejected - see http://orbz.org/')

dnl FEATURE(dnsbl,`relays.visi.com', `Mail rejected - see http://relays.visi.com/')

dnl FEATURE(dnsbl, `ex.dnsbl.org', `Mail rejected - see http://www.dnsbl.org/')

dnl FEATURE(dnsbl,`blackholes.mail-abuse.org', `Mail rejected - see http://mail-abuse.org/')

dnl FEATURE(dnsbl,`relays.mail-abuse.org',`Mail rejected - see http://work-rss.mail-abuse.org/')

dnl FEATURE(dnsbl,`dialups.mail-abuse.org', `Mail rejected; see http://mail-abuse.org/dul/enduser.htm')

dnl Russian DialUp Blocking List

FEATURE(`dnsbl',`dul.ru',`Mail rejected - your are spammer')

dnl Uncomment the first line to change the location of the default

dnl /etc/mail/local-host-names and comment out the second line.

dnl define(`confCW_FILE', `-o /etc/mail/sendmail.cw')

define(`confCW_FILE', `-o /etc/mail/local-host-names')

define(`confMAX_MIME_HEADER_LENGTH', `256/128')

define(`confMAX_MESSAGE_SIZE', 5000000)

define(`confNO_RCPT_ACTION', `add-to-undisclosed')

define(`confPRIVACY_FLAGS',

`authwarnings,noexpn,novrfy,noetrn,nobodyreturn,goaway, restrictmailq,restrictqrun')

define(`confSMTP_LOGIN_MSG',`Antispam-MTA; "Non-authorized relaying DENIED." $b')

define(`confMAX_RCPTS_PER_MESSAGE', `5')

INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')

INPUT_MAIL_FILTER(`kavmilter',`S=unix:/var/run/kavmilter,F=T')

define(`confMILTER_LOG_LEVEL',`6')

MAILER(local)

MAILER(smtp)

# ========конец файла main.mc===============

Полагаю, что вы немного знакомы с настройкой sendmail, поэтому не буду объяснять все позиции. Поясню лишь три:

INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')

Эта строчка говорит, что при получении письма почтовиком письмо передаётся фильтру spamassassin для проверки на спам. В результате обработки письму присваивается некий рейтинг.

INPUT_MAIL_FILTER(`kavmilter',`S=unix:/var/run/kavmilter,F=T')

Эта строчка говорит о том, что после обработки письма на потенциальный спам письмо попадает к Kaspersky Antivirus, а тот уже делает вывод, содержит ли письмо вирус или нет.

define(`confMILTER_LOG_LEVEL',`6')

Ну и эта строка лишь уменьшает количество выводимой информации в логи, что удобно после отладки. Мне нужны только строки о поступлении и пересылке письма. Для «разбора полёта» письма их вполне достаточно.

Собираем конфигурационный файл sendmail:

m4 main.mc>sendmail.cf

Его надо перезаписать поверх старого файла /etc/mail/sendmail.cf.

Обучение системы

Итак, после всех этих процедур ваша система готова к работе. С начальными настройками она способна фильтровать до 60-70% лишней почты. Для увеличения этой цифры вам необходимо «обучить» систему. По большому счету в процессе работы система сама обучается. То есть чем больше писем она обрабатывает, тем меньше вероятность ошибки и больше процент фильтрации писем. Для ручного обучения (помощи системе) вам необходимо собрать от 200 спам-писем и нормальных писем. Передать их системе и обработать. Письма можно получить обычным экспортом из почтового клиента. Вид писем стандартный (.eml), вырезать из них ничего не надо. К примеру:

=====начало файла=====

Return-Path: narayan@epfl.ch

Received: from flashmail.com ([200.75.94.146])

    by ns.mycompany.ru (8.12.10/8.12.10) with SMTP id hB38USe7096329

    for <lan@mycompany.ru>; Wed, 3 Dec 2003 11:30:44 +0300 (MSK)

    (envelope-from narayan@epfl.ch)

Date: Wed, 03 Dec 2003 06:35:56 +0000

From: narayan@epfl.ch

Subject: =?Windows-1251?B?yvLuIOHz5OXyIOz98O7sPyE=?=

To: Lan lan@mycompany.ru

…………

======конец файла=====

Итак, в домашнем каталоге создаем два каталога для спам-писем и для нормальных писем, пишем небольшой скрипт и обучаем систему.

cd /home/user

mkdir spamd spamd/ham spamd/spam

cd spamd

vi spamd-training.sh

====начало файла spamd-training.sh====

#!/bin/sh

sa-learn --ham /home/gennadiy/Spamd/ham/

sa-learn --spam /home/gennadiy/Spamd/spam/

=====конец файла spamd-training.sh====

chmod +x spamd-training.sh

В каталог spamd/ham пишем нормальные письма, в каталог spamd/spam пишем спам. Запускаем скрипт:

./spamd-training.sh

Всё. Статистику по обработке почты можно посмотреть командой:

sa-learn --dump magic

Последние штрихи, ссылки и благодарности

Ну и несколько последних штрихов. На самом деле вы можете этот шаг пропустить или сделать так, как вам удобнее. Я для собственного успокоения создал каталог /usr/local/etc/script. Переместил туда всё необходимые мне стартовые скрипты kavdaemon.sh, spammerdaemon.sh, kavmilter.sh, spamass-milter.sh. В каталоге /usr/local/etc/rc.d создал исполняемый скрипт следующего содержания:

# =======начало файла start.sh===============

#!/bin/sh

# kavdaemon - antiviral tolkien pro

# starting mail filter daemon

# ========конец файла start.sh===============

Вот вроде бы и всё. Буду благодарен за любые замечания на адрес: stranger03@mail.ru

Огромное спасибо: Андрееву Павлу, системному администратору Novavox, и Тараненко Сергею, системному администратору Trinity, за неоценимую помощь в создании данной системы.

Ссылки на документы:

  1. О самом cvsup можете прочитать здесь: http://www.freebsd.org.ru/how-to/cvsup
  2. О настройках демона spamd можете прочитать здесь: http://www.spamassassin.org/doc/Mail_Spam-Assassin_Conf.html
  3. О тестовых параметрах, по которым можно подстраивать систему под ваши требования, можно прочитать здесь: http://spamassassin.org/tests.html
  4. О настройках Sendmail можете прочитать здесь: http://unix1.jinr.ru/~lavr/webmail/sendmail_common.mc

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru