0. Введение

Ну вот, я почти доделал свою антиспам-систему.
К сожалению, подробно описывать процедуру практически нет времени, да
и лениво. Потому на все вопросы готов ответить по почте
stranger03@mail.ru.

Но сначала небольшое отступление. В данной статье будет описана
процедура надстройки для вашего почтового сервера для фильтрации
почтового мусора (спама) и проверки входящей и исходящей почты на
вирусы. Надеюсь для чего это надо, объяснять не надо. Так же полагаю,
что вы хоть чуть-чуть знакомы с системой и вам не придеться объяснять,
как поставить систему, как настоить сам почтовый сервер и что такое
make и на кой она нужна.

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

1. Обновление дерева портов
2. Обновление почтового демона
3. Установка и настройка демона spamd, который разбирает сообщение по
кусочкам и ставит спам-балл Если балл превышает некую цифру,
которую вы можете изменять, письмо преобразуется определенным
образом.
4. Установка и настройка milter-а (spamass-milter) для почтового
демона. Он будет передавать сообщение демону spamd и принимать его
обратно, пересылая дальше по цепочке
5. Установка и настройка Касперского. В пояснении не нуждается.
6. Установка и настройка milter-а (kavmilter) для почтового демона.
Он будет передавать сообщение Касперскому.
7. И последнее, настройка самого почтового демона.
Вот собственно и все отступление, icon_smile.gif . Приступим.


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



Для начала обновим дерево портов:
cd /usr/ports/net/cvsup-without-gui
make
make install

Далее в домашнем каталоге создаем для большего удобства два файлика.
Один со списком обновляемых портов, другой со скриптом запуска.
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==========

В принципе вы можете здесь обновлять все порты, систему, если вам это
необходимо. Для меня было достаточно этих портов. Про сам cvsup можете
почитать здесь: http://www.freebsd.org.ru/how-to/cvsup/
vi cvsup.sh

# =======начало файла cvsup.sh==========
#!/bin/sh
/usr/local/bin/cvsup -g -L 2 cvsup.ports
# =======конец файла cvsup.sh===========

chmod +x cvsup.sh
./home/user/cvsup/cvsup.sh

После такой процедуры ваши волосы, тьфу, порты станут относительно
новыми. Из них вам понадобится поставить следующие порты (технология
стандартная, make & make install):

/usr/ports/mail/sendmail
/usr/ports/mail/p5-Mail-SpamAssassin
/usr/ports/mail/spamass-milter


2. Обновление почтового демона



Поскольку изначально в 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


3. Установка и настройка демона spamd



Далее, с 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
auto_learn 1
ok_languages en ru de
ok_locales en ru de
# rewrite subject
rewrite_subject 1
suject_tag *SPAM*_HITS_ points* :
required_hits 3.5
report_charset koi8-r
allow_user_rules 0
clear_report_template
report This message has identified this incoming email as possible spam.
report
report Content preview: _PREVIEW_
report
report Content analysis details: (_HITS_ points, _REQD_ required,_BAYES_
bayes score)
report
report pts rule name description
report ---- ----------------------


report _SUMMARY_
clear_unsafe_report_template
# network whitelist
whitelist_from localhost
whitelist_to spam@mycompany.ru (mailto:spam@mycompany.ru)
# ==========конец файла local.cf=========

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

# =========начало файла spammerdaemon.sh==
#!/bin/sh
case "$1" in
start)
kill s 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 s ax | grep spamd | grep -v grep | awk '{print $1}' | head -1

>/dev/null 2>/dev/null && echo -n ' spamd'
;;
*)
echo "Usage: asename $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=======



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



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

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

Ну и собственно скрипт для запуска 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}" ] e E { " E "

U / d t
; " t d k L l C D s k e r . h a t a = а l
а а о - - - а и е л в
о к г с м
а е д e 0 x v - e
d t 4 B
, и о l - и n c
i о н ы # а p = 2 o o V r a a a
. h / a n p t d y p = ф x = = а i n e j t o v / r ; m o l
i e . i d d d e x e = i d c
t i e = l d N o o o s t e
t l L e s S

p S p = v t
i o 5 e t r
o o D S U o N g p h t

d u S N p U # h i W ] p e r e e a t m E E r o N i c p i o F l A u a i e
E E s o N t c r u
l c P C = o e N n h C [ U e F 6 s 0 / i 0 C o t p l s d g A o a E C = ц n
= т о е л ы н п и и
. , о к е / / в н . д л т в й е с m o / т с e t т а - - - - -
п l п м и s l П е a и k з ф н к в з н , к н я о , с ж о u c c = й r =
i u
v t v T y
= l 0 l M n n # н v = / v # а v = i = l E a P n F n p / A
n $ e
P i M u - e a v e m I
h r r l i / - & F e F e m r U n a t s # н v = р l с
й Я , о п р т т e е ю п о ф o d s = л . = P / / = / A / E
- - - I
i I a o R & v > \ & a a r P ] / k l / D v h n

: $ t " e = а o = т о д - - - у е я а е а г d d / i m / а n е и
= л = =
n 4 R e t f 0 : i O s g A f D N p ) c a P l E l n (
l a m a R e A e s a t o - o E ) E l f i - / u
b r i - /
b e l e h h t F l b i - /
( y , c t .
( d e p l b e e s a g T r a M d : m r A l , t p s n
k A ' M d d t l g i e e a s t c n o i c ' m o
f A ,
f _ 0 _ d l n A
g v n , r s
f M a - r I e A _ 5 A s ' / m s C : I I l x a ' o G ) c s = й = = , н й п
д . ь I I s = r m ; : с р и и
ф a у б с т N L t : v ) к с и п й м к у д л р
( _ т ш в ф о б л е п ь
е х т n
о н d 4 n о а р а i c с е в д т п л а у л о и т o i т
ы a o l m s г l о я с
ч t = ! y p m r p a t s s l m a t m
e a s o i m a = а = = е е е Б р а n r а к д
а д , о и С и м н о а с у м а и й т п е

Подякувати Помилка?

Дочати пiзнiше / подiлитися