spamassassin

Содержание


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