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литися