yandex spamoborona

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

yandex spamoborona

Непрочитанное сообщение Al » 2008-07-14 18:00:20

Не подумайте, что реклама....
Была поставлена задача найти спаморезалку хорошую, при этом цена не имела особого значения. До этого работал dspam - отличная штука, но требует обучения - в этом его минус. Ленивые пользователи обучать его не хотели.
В итоге решил попробовать спамоборону от яндекса. Результаты работы будут ниже, а пока по установке.
Надо скачать дистрибутив с http://so.yandex.ru/. Там есть пробная версия на 30 дней. Для получения пробной версии надо зарегиться - поставить спамоборону - ответить на необходимые вопросы - выслать конф файлы и получить ключ на 30 дней.
Итак, установка.
Просто качаем файл для нашей оси и ставим. Там есть установочный скрипт с подобием гуя. В качестве метода интеграции с почтовой системой выбираем smtp-proxy. Если выбрать exim, то они предлагают пересобрать экзим со своим файлецом - мне такая затея не понравилась сразу - даж не стал разбираться.....
Косяки на этом этапе следующие:
- локальные домены надо писать сразу все. После получения ключа список изменять НЕЛЬЗЯ!.
- ключ и конф фай присылается иногда с добавленим ^M в конце строк. естественно, при этом ничего не ра ботает. Открываем файл присланного ключа на редактирование в мс (другие редакторы не показывают этот косяк) и стираем виндовые хрени оттуда.

Инсталлер сам добавляет везде свои записи, не особо нас об этом спрашивая. После установки в rc.d появляются 2 скрипта: sp-daemon.sh* и sp-proxy.sh*. При перезагрузке мы обнаруживаем, что сцуко работает от рута..
Для исправления переносим эти скрипты в /var/yamail, а в rc.d создаем свой скрипт

Код: Выделить всё

[mx1:/usr/local/etc]#cat rc.d/so-proxy.sh
#!/bin/sh

# PROVIDE: soproxy
# REQUIRE: DAEMON
# BEFORE:  LOGIN
# KEYWORD: nojail shutdown

# Подключаем доп. функции
. /etc/rc.subr

# Имя скрипта
name="soproxy"

# Значение _enable из rc.conf
rcvar=`set_rcvar`
# Старт -стоп функции
start_cmd="${name}_start"
restart_cmd="${name}_restart"
stop_cmd="${name}_stop"


# Ставим NO, если в rc.conf не задан параметр soproxy_enable="YES"
eval "${rcvar}=\${${rcvar}:-"NO"}"

soproxy_restart()
{
  echo "restarting sp-proxy"

  # Запуск спамобороны от имени souser
  /var/yamail/sp-daemon.sh stop
  /var/yamail/sp-proxy.sh stop
  /usr/sbin/chown souser:souser /var/yamail/*
  /bin/chmod 775 /var/run
  /usr/bin/chgrp souser /var/run
  /usr/sbin/chown souser /var/spool/spamooborona
  /usr/sbin/chown souser /var/spool/spamooborona/*
  /bin/rm /var/run/sp-*
  /usr/bin/su souser -c "/var/yamail/sp-daemon.sh start"
  /usr/bin/su souser -c "/var/yamail/sp-proxy.sh start"

  echo "sp-proxy restarted"
}


soproxy_start()
{
  echo "Starting sp-proxy"

  # Запуск спамобороны от имени souser
  /var/yamail/sp-daemon.sh stop
  /var/yamail/sp-proxy.sh stop
  /usr/sbin/chown souser:souser /var/yamail/*
  /bin/chmod 775 /var/run
  /usr/bin/chgrp souser /var/run
  /usr/sbin/chown souser /var/spool/spamooborona
  /usr/sbin/chown souser /var/spool/spamooborona/*
  /bin/rm /var/run/sp-*
  /usr/bin/su souser -c "/var/yamail/sp-daemon.sh start"
  /usr/bin/su souser -c "/var/yamail/sp-proxy.sh start"

  echo "sp-proxy started"
}



soproxy_stop()
{
  echo "Starting sp-proxy"

  # Запуск спамобороны от имени souser
  /var/yamail/sp-daemon.sh stop
  /var/yamail/sp-proxy.sh stop
  echo "sp-proxy stoped"
}

# Загружаем переменные из rc.conf
load_rc_config $name
run_rc_command "$1"
[mx1:/usr/local/etc]#     
При этом не забываем добавить пользователя souser c домашкой /var/yamail. У пользователя обязательно должен быть шел, а пароль лучше закоментить.
Добавляем в rc.conf

Код: Выделить всё

soproxy_enable="YES"
для старта нашего свежеиспеченного скрипта.
Запускаем его от рута и проверяем, что получилось

Код: Выделить всё

[mx1:/usr/local/etc]#rc.d/so-proxy.sh start
[mx1:/usr/local/etc]#ps -aux | grep sp-
souser    6697  0,0  0,0  1736  1172  p0  I    11:49     0:00,00 /bin/sh /var/yamail/sp-daemon.sh start
souser    6698  0,0  0,0  1736  1176  p0  I    11:49     0:00,00 /bin/sh /var/yamail/sp-daemon.sh start
souser    6699  0,0  1,4 85148 43296  p0  S    11:49     2:08,81 /usr/local/sbin/sp-daemon -f -m X-Spam-Flag -p /var/run/sp-daemon.sock -i/usr/local/etc/
souser    6706  0,0  0,0  1732  1164  p0  I    11:49     0:00,00 /bin/sh /var/yamail/sp-proxy.sh start
souser    6707  0,0  0,0  1732  1172  p0  I    11:49     0:00,00 /bin/sh /var/yamail/sp-proxy.sh start
souser    6708  0,0  0,1  4652  2716  p0  S    11:49     0:47,61 /usr/local/sbin/sp-proxy -f -l 1125 -p /var/run/sp-daemon.sock
root     20449  0,0  0,0  1600   948  p0  S+   18:39     0:00,00 grep sp-
[mx1:/usr/local/etc]#  

Теперь все работает от непривелегированного пользователя.
не забываем менять владельца файлов на нового пользователя

Код: Выделить всё

chown souser:souser /var/yamail/*
Далее эту хрень надо подружить с почтовиком. В моем случае - exim.
Перед роутером локальной доставки добавляем

Код: Выделить всё

684 #проверяем на спам
685 spam_yandex_route:
686   driver = manualroute
687   transport = spamoborona
688   domains = +local_domains
689 ##  no_verify
690   condition = ${if eq {$interface_port}{25}{yes}{no}}
691   #condition=${if !eq {$received_protocol}{local}}"
692 ##  address_test = false
693   route_data = localhost
694   self = send
В транспортах описываем транспорт

Код: Выделить всё

827 spamoborona:
828  driver = smtp
829  allow_localhost = true
830  port = 1125
И в самом начале аклей добавляем

Код: Выделить всё

360   # принимаем с локалхоста без проверки, т.к. с него приходят
361   # проверенные письма с спамобороны, а она не пишет отправителя
362   accept  hosts = localhost:127.0.0.1
Теперь логика работы.
Если письмо доходит до роутера локальной доставки - это локальное письмо. Соответственно,перед локальной доставкой мы его пересылаем на проверку на локалхост на порт 1125 в спамоборону. Там проверяется на спам и возвращается на локалхост на порт 1025 в экзим. Для него мы не проверяем акли и смотрим, что пришло не с 25 порта в роутерах - значит, письмо от спамобороны - доставляем локально.
В заголовках появляется

Код: Выделить всё

X-Spam-Yversion: Spamooborona-2.3
Кстати,не забываем в exim указывать, чтоб слушал 1025 порт на локахосте.

Код: Выделить всё

local_interfaces = <; [127.0.0.1]:1025; [127.0.0.1]:25; [ваши адреса]
Тестированию поддается так: убираем роутер спамобороны из экзима и заходим телнетом на 1125 порт (это спамоборона) и средствами smtp пытаемся отправить себе письмо. Если все ок, письмо проходит проверку в спамобороне и передается в экзим на 1025 порт для доставки. Если с этим все ок и вы получили письмо, включаем роутер, и экзим начинает перенаправлять все письма на спамоборону.
Логи читаем так:

Код: Выделить всё

[mx1:/usr/local/etc]#cat /etc/syslog.conf
*.*                                             /var/log/all.log
.....
Чтоб нормально обновлялся правим /etc/crontab до такого

Код: Выделить всё

##-- Spamooborona cron entries start
10 5 * * *      souser  /usr/local/etc/spamooborona/scripts/cron_spamstat
*/20 * * * *    souser  /usr/bin/lockf -st 0 /var/tmp/rsync.so-rules.lock /usr/local/etc/spamooborona/scripts/cron_rul
00 09 * * *     souser  /usr/local/etc/spamooborona/scripts/cron_notify
Штука имеет гуй для настройки

Код: Выделить всё

/usr/local/etc/spamooborona/adm_so   
или можно покопаться вручную в /usr/local/etc/spamooborona или /var/yamail.
Кстати через гую рекомендую настроить глобальную политику обработки спама - я просто помечаю в теме.
Так же есть статистика (не забываем ее включить и создать под нее папку)

Код: Выделить всё

[mx1:/usr/local/etc]#spamooborona/scripts/statcalc.sh summary at 2008-07-15
08-07-15 00:00:05 - 08-07-16 0
Summary:
*        1 (0,00%)
*       93 (0,44%) DLVR
*    16732 (79,04%) SPAM
*     4341 (20,51%) Mail
*        1 (0,00%) 17:40:03
*    21168 total

[mx1:/usr/local/etc]#
Интересно реализован механазм вайтлистинга. При добавлении в вайтлист письмо все равно проходит через спамобороу и ему присуждается спамовый коэффициент.
Реализованы разные алгоритмы на обработку белых листов, в которых просто домен и белых листов, в которых пользователь@домен получатель@домен.
если в белом списке найден домен - то минус 3 балла к спамовому весу
если связка получатель - отправитель - то минус 10 баллов
правила регулируются тут

Код: Выделить всё

cat /var/yamail/wl.rul

rule FROM_IN_WL R_ALG -10
describe whitelist

rule FROM_IN_PERSONAL_WL R_ALG -10
describe personal whitelist

rule DOMAIN_IN_WL R_ALG -3
describe domain whitelisted

rule DOMAIN_IN_PERSONAL_WL R_ALG -5
describe domain whitelisted personally
Качество работы устроило вполне. Пока из косяков - забраковал 2 daily, но это из-за неправильно настроенных белых листов. В общем, все довольны и счастливы. Процент ложного срабатывания - пока минимальный.
Мнения - в студию!
Последний раз редактировалось Al 2008-07-17 13:54:58, всего редактировалось 4 раза.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35315
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Alex Keda » 2008-07-14 18:30:49

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

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-15 8:10:06

Не, ты не понял. или я не понял....
Ты не отправляешь почту куда-либо. Ты ее пересылаешь демону,который работает на твоем локальном почтовом серваке. Эта хрень работает как dspam с одним отличием - базы пополняются не твоими пользователями, а на яндексе и высылаются тебе. А насчет проверки - почта доставляется по-любому вся. Просто то,что он посчитал спамом, он метит в теме.
А насчет переправлять почту куда-то для проверки - согласен - нахрен не надо такого счастья. Тож предлагали что-то от мелкомягкого с такой логикой работы - отказался сразу - даж рассматривать не стали.

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-15 15:03:05

Ну дак че, надо превращать в сатью или нет?

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение princeps » 2008-07-15 17:43:55

я думаю, пускай до кучи будет. На форуме несколько раз спрашивал народ про настройку.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 8:12:10

М все-таки оно ошибается. редко,но метко.... так что не советую удалять отмеченную как спам почту.

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение princeps » 2008-07-16 9:38:22

Ошибается любой контентный фильтр. Че, сколько процентов спама замочил?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 9:45:44

Код: Выделить всё

*    16732 (79,04%) SPAM
*     4341 (20,51%) Mail
*    21168 total
Ошибся,я думаю, штук 20.... около 0.1% получается... + хз сколько пропустил, но, вроде,немного.
Но такие письма запорол,что ппц.
В частности daily от себя же. От 9 серваков норм пришли - от 1 в спам.

Аватара пользователя
Oloremo
ефрейтор
Сообщения: 60
Зарегистрирован: 2008-06-18 12:07:47
Откуда: Москва

Re: yandex spamoborona

Непрочитанное сообщение Oloremo » 2008-07-16 12:39:24

Как раз хочу его ставить.

Но идея пересылать почту туда сюда мне как раз не нравится.
Я вот сижу думаю как по правильному нужно пересобирать exim с их local_scan.c
Нужен какой-то патч, чтоб portupgrade работал.

Кто что подскажет?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35315
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Alex Keda » 2008-07-16 12:48:19

сделай патч и положи в files
он оттуда не удалиться, если всё дерево сносить не будешь
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Oloremo
ефрейтор
Сообщения: 60
Зарегистрирован: 2008-06-18 12:07:47
Откуда: Москва

Re: yandex spamoborona

Непрочитанное сообщение Oloremo » 2008-07-16 13:09:17

lissyara писал(а):сделай патч и положи в files
он оттуда не удалиться, если всё дерево сносить не будешь
Увы, для меня это не очень тривиально.
Сейчас сижу вчитываюсь в makefile - я правильно понимаю что поддержка local_scan в exim включается тольско с WITH_SA_EXIM ?
там ведь всякие spamc зависимости появляются, а оно то мне и не нужны.

Аватара пользователя
Oloremo
ефрейтор
Сообщения: 60
Зарегистрирован: 2008-06-18 12:07:47
Откуда: Москва

Re: yandex spamoborona

Непрочитанное сообщение Oloremo » 2008-07-16 13:21:56

Пытаюсь придумать алгоритм патча.
Что нужно сделать:

Код: Выделить всё

To enable exim local scan please copy this file to exim source tree
Local/local_scan.c, edit Local/Makefile to add

LOCAL_SCAN_SOURCE=Local/local_scan.c
LOCAL_SCAN_HAS_OPTIONS=yes

and compile exim.
Local мы получаем после make extract порта.
Не совсем понимаю как мне сказать положить туда local_scan.c SO во время установки.

Это пахнет уже допиливанием makefile порта, что не совсем приемлимо.

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 13:29:32

Его не надо придумывать. он предусмотрен экзимом изначально
http://www.exim.org/exim-html-4.50/doc/ ... ml#CHAP41.
В моем же примере я рассматривал установку спамобороны БЕЗ пересборки экзима.

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 13:30:55

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

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 13:54:55

Прикрутив локалскан, ты будешт передават письма на проверку не по smtp, а через неизвестно че, но механизм работы останется ТАКОЙ ЖЕ. Если будут глюки - отловить их достаточно сложно. По крайней мере, насколько я представляю себе этот механизм. При использовании smtp алгоритм передачи письма становится гораздо прозрачней.

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 14:29:51

если есть траблы с установкой - пиши в асю.
не обращай внимания на офф-лайн.

Аватара пользователя
Oloremo
ефрейтор
Сообщения: 60
Зарегистрирован: 2008-06-18 12:07:47
Откуда: Москва

Re: yandex spamoborona

Непрочитанное сообщение Oloremo » 2008-07-16 14:40:02

Al писал(а):Прикрутив локалскан, ты будешт передават письма на проверку не по smtp, а через неизвестно че, но механизм работы останется ТАКОЙ ЖЕ. Если будут глюки - отловить их достаточно сложно. По крайней мере, насколько я представляю себе этот механизм. При использовании smtp алгоритм передачи письма становится гораздо прозрачней.
Я согласен что smtp-proxy прозрачней.
Но сама идея такого дизайна мне кажется очень не красивой.

Кста, а на какой ОС ты это всё поднимал?

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 15:01:27

FreeBSD 6.3.
А мне наоборот не нравится идея вкомпилить в почтовик непонятный код, который неизвестно кем писался и неизвестно как тестировался. На примере интеграции пакета спамобороны с фрей я понял, что нормально сделать это они это пока не смогли. Поэтому есть определенные сомнения насчет нормально написанного патча для экзима.

Аватара пользователя
Oloremo
ефрейтор
Сообщения: 60
Зарегистрирован: 2008-06-18 12:07:47
Откуда: Москва

Re: yandex spamoborona

Непрочитанное сообщение Oloremo » 2008-07-16 15:22:19

Al писал(а):FreeBSD 6.3.
А мне наоборот не нравится идея вкомпилить в почтовик непонятный код, который неизвестно кем писался и неизвестно как тестировался. На примере интеграции пакета спамобороны с фрей я понял, что нормально сделать это они это пока не смогли. Поэтому есть определенные сомнения насчет нормально написанного патча для экзима.
А можно примеры? Что конкретно там не так?
Я сейчас с ней играюсь на FreeBSD 7.0. Только что пеерсобрал Exim он у меня теперь не отправляет почту, ругается на этот самый local_scan, видимо что-то я нет так пересобрал.

Я уже написал в Яндекс пару вопросов, жду ответ.

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 15:41:36

Некоректно добавлен пакэдж.
Все нормально работает, но при апгрейде или удалении портов постоянно ругается на него.
Насчет техподдержки - она в яндексе общительная...
Правда, в технических вопросах в стиле шаг вправо-лево не совсем компетентная...
А насчет ошибки -не факт, что твоя вина. Мож,он под другую версию экзима написан...
Была б моя воля, я б его вообще на отдельную машину поставил - подальше от всего. Не доверяю я таким комерческим продуктам...

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-16 15:42:56

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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35315
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Alex Keda » 2008-07-16 18:33:51

если денег за этот сервис уплочено - требуй назад по причине что техподдержку они оказывать обязаны
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Oloremo
ефрейтор
Сообщения: 60
Зарегистрирован: 2008-06-18 12:07:47
Откуда: Москва

Re: yandex spamoborona

Непрочитанное сообщение Oloremo » 2008-07-16 20:30:38

lissyara писал(а):если денег за этот сервис уплочено - требуй назад по причине что техподдержку они оказывать обязаны
Я сейчас с ними переписываюсь по поводу subj`жа.
Как раз сказал по поводу рута, они сказали что думают над этим.

Я понимаю что это просто слова, но всё же. ;-)

Весь день сегодня на эту Спамооборону убил. ;-(

Al
ст. прапорщик
Сообщения: 501
Зарегистрирован: 2007-10-18 13:42:48
Откуда: Тверь
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение Al » 2008-07-17 8:15:34

не, денег пока не платили. пока пробная на 30 дней стоит.
А техподдержку они оказывают... Просто продукт продается "как есть" и техподдержку они оказывают только при использовании "описанным в мануале способом". А если что-то сам придумываешь - то на свой страх и риск. В техподдержке сидят парни, которые выучили инструкцию и все. чуть больше - тишина.
Хотя,как-то попал на реального спеца один раз, толково с ним поговорили..
Впринципе, если с подпорками, то работает нормально - от другого пользователя и без пересборки зкзима.

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

Re: yandex spamoborona

Непрочитанное сообщение princeps » 2008-07-17 8:59:32

А из 4341 сколько спамерских прорвалось?
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru