Muff's website forum

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск  

Новости:

SMF - Just Installed!

Автор Тема: Exim 4.72 + SpamProbe 1.4d на OpenBSD 4.8  (Прочитано 32111 раз)

lintech

  • Пионер
  • *
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 3
    • Просмотр профиля
Exim 4.72 + SpamProbe 1.4d на OpenBSD 4.8
« : Ноября 30, 2010, 03:26:52 pm »

Пытался поднять связку Exim 4.72 + SpamProbe 1.4d на OpenBSD 4.8
Используя как инструкцию статью http://muff.kiev.ua/content/spamprobe-filtruem-spam
Сходу не заработало - spamprobe не хотел метить письма.
Закралось подозрение что что-то не так со скриптами вызова spamprobe,
пробороздил гуглем инет нашёл у буржуев на форуме похожие скрипты,
с ними заработало.

exim.filter
# cat /usr/local/etc/spamprobe/exim.filter
# Exim filter
logfile /var/log/spam-filter.log
headers add "X-Spamprobe: ${run {/usr/local/etc/spamprobe/msgscore.sh ${message_id} \
${quote:${message_headers}}} {$value} {expansion failed} }"
logwrite "SPAM FILTER:  Письмо от $return_path успешно прошло проверку; $value "

msgscore.sh
#!/bin/sh
spooldir=/var/spool/exim/input
dbdir=/var/db/spamprobe
echo "$2" > $spooldir/$1-M
sed '1 s/.*//' $spooldir/$1-D >> $spooldir/$1-M
spamprobe -8 -d $dbdir score $spooldir/$1-M
rm $spooldir/$1-M
exit 0

И из за того что у меня используются mbox а не maildir, пришлось один транспорт
подрихтовать:
### SpamProbe start ###
SP_check_transport:
driver = appendfile
file = /var/mail/spamfilter
user = spamfilter
group = wheel

Вроде работает, но пока что база не обученная и он весь спам метит как GOOD 0.3
Записан

lintech

  • Пионер
  • *
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 3
    • Просмотр профиля
Re:Exim 4.72 + SpamProbe 1.4d на OpenBSD 4.8
« Ответ #1 : Ноября 30, 2010, 06:17:24 pm »

Скормил около 500 писем свежего спама, вроде как начал нормально спам отсеивать.

P.S. Вопрос по логированию:
Что в эту строку: logwrite "SPAM FILTER:  Письмо от $return_path успешно прошло проверку; $value "
добавить чтоб в лог ещё и дату-время писало ?
Записан

muff

  • Administrator
  • Долгожитель
  • ***
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 283
    • Просмотр профиля
    • IT, Network, Beer!
Re:Exim 4.72 + SpamProbe 1.4d на OpenBSD 4.8
« Ответ #2 : Декабря 01, 2010, 03:19:50 pm »

Воспользуйтесь переменной $h_date. Например, в вашем случае можно вот так:
# cat /usr/local/etc/spamprobe/exim.filter
# Exim filter
logfile /var/log/spam-filter.log
headers add "X-Spamprobe: ${run {/usr/local/etc/spamprobe/msgscore.sh ${message_id} \
${quote:${message_headers}}} {$value} {expansion failed} }"
logwrite "$h_date:  Письмо от $return_path успешно прошло проверку; $value "

Результат в моем случае:
Wed, 1 Dec 2010 15:16:05 +0200 SPAM FILTER: Письмо от ip@itms.net.ua успешно прошло проверку; GOOD 0.0000010 a20675bed4dda40c4d1ee47d6a2c75c0

Wed, 01 Dec 2010 15:17:18 +0200 SPAM FILTER: Письмо от mailrobot@express-mail.kiev.ua успешно прошло проверку; GOOD 0.0206662 3e4ba1e66ef3c43bd096e6a44bf45808
Записан
Если нет ответа, то давайте подумаем...

lintech

  • Пионер
  • *
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 3
    • Просмотр профиля
Re:Exim 4.72 + SpamProbe 1.4d на OpenBSD 4.8
« Ответ #3 : Декабря 01, 2010, 03:54:30 pm »

Уже сделал, но чуть чуть по другому - воспользовался переменной $tod_log
для вставки-даты и времени, и переменной $recipients для вставки email получателей.

Собственно код:
# cat /usr/local/etc/spamprobe/exim.filter
# Exim filter
logfile /var/spool/exim/logs/spam-filter.log
headers add "X-Spamprobe: ${run {/usr/local/etc/spamprobe/msgscore.sh ${message_id} \
${quote:${message_headers}}} {$value} {expansion failed} }"
logwrite "$tod_log FOR $recipients FROM $return_path  $value "

Логи теперь выглядят вот так:

2010-12-01 15:52:03 FOR poluchatel@mydomain.com FROM otpravitel@domain.com  SPAM 0.6523003 fc367172715bd4b3e93652e4ca2e40
81

Записан

muff

  • Administrator
  • Долгожитель
  • ***
  • Karma: 0
  • Оффлайн Оффлайн
  • Сообщений: 283
    • Просмотр профиля
    • IT, Network, Beer!
Re:Exim 4.72 + SpamProbe 1.4d на OpenBSD 4.8
« Ответ #4 : Декабря 01, 2010, 04:32:28 pm »

Кстати, документацию по использованию фильтров Exim можно почерпнуть из файла /usr/local/share/doc/exim/filter.txt (FreeBSD)
« Последнее редактирование: Декабря 01, 2010, 04:45:42 pm от muff »
Записан
Если нет ответа, то давайте подумаем...
 

Страница сгенерирована за 0.379 секунд. Запросов: 29.