EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Непрочитанное сообщение
bobot » 2010-02-16 14:01:52
Как выполнить запуск утилиты sa-learn ?
Вот так
это я натравливаю спамассассин на папку спам(куда у меня складывается спам)
и
это я натравливаю спамассассин на папку не спам (сюда складывается не спам)
Правильно я понимаю, так это делается?
вот я натравливаю на папку Spam (у меня там 500 писем)
и ввожу
и результат
Код: Выделить всё
Learned tokens from 4 message(s) (5 message(s) examined)
проверило 4 из 5 , но у меня там 500 писем, в чём дело?
bobot
-
Хостинг HostFood.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/
-
Hety
- рядовой
- Сообщения: 13
- Зарегистрирован: 2009-07-01 10:50:18
Непрочитанное сообщение
Hety » 2010-02-17 18:52:49
У спамасассина есть минимум/максимум по значениям для обучения. Если не изменяет память, то ham должен иметь счет не более 2, а спам более 12, чтобы пройти обучалку. Что-то в этом духе. В доках имеются комментарии.
Hety
-
Laa
- ст. лейтенант
- Сообщения: 1032
- Зарегистрирован: 2008-02-21 18:25:33
- Откуда: Украина, Россия
Непрочитанное сообщение
Laa » 2010-02-17 19:10:16
Возможно нужно указать тип почтового ящика.
Я так делал и кол-во писем было правильным:
Код: Выделить всё
sa-learn --use-ignores --spam --mbox --showdots ~laa/mail/spam;rm -fv ~laa/mail/spam
exim: помните, что выдавая deny, вы можете недоставить ваше же письмо, зарубив sender-verify удаленного MTA к вашему MTA!!!
Laa
-
bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Непрочитанное сообщение
bobot » 2010-02-17 20:55:57
Laa писал(а):Возможно нужно указать тип почтового ящика.
Я так делал и кол-во писем было правильным:
Код: Выделить всё
sa-learn --use-ignores --spam --mbox --showdots ~laa/mail/spam;rm -fv ~laa/mail/spam
С этим я разобрался нормально!! но всёравно спам валит хоть греби лопатой!! уже уши опухли от телефонных звонков...
Уже даже и не знаю что делать!!!!!!
у меня получается не создаётся база данных, в конфиге путь прописан (я читал что она должна автоматом создаваться, но почему то не создаётся)
я запускаю от root spamassassin
правда я вот нашёл в каталоге root
Код: Выделить всё
[root@mail]# ls -l /root/.spamassassin
-rw------- 1 root wheel 90112 Feb 17 16:34 bayes_seen
-rw------- 1 root wheel 1290240 Feb 17 16:34 bayes_toks
drwxr-xr-x 2 root wheel 512 Feb 3 16:55 sa-compile.cache
-rw-r--r-- 1 root wheel 1487 Jan 26 10:45 user_prefs
может я не от того юзера запускаю
вот скрипт запуска
Код: Выделить всё
#!/bin/sh
#
# $FreeBSD: ports/mail/p5-Mail-SpamAssassin/files/sa-spamd.sh.in,v 1.2 2008/02/13 04:13:43 beech Exp $
#
# PROVIDE: spamd
# REQUIRE: LOGIN
# BEFORE: mail
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable spamd:
#
#spamd_enable="YES"
#
# See spamd(8) for flags
#
. /etc/rc.subr
name=spamd
rcvar=`set_rcvar`
extra_commands="reload"
load_rc_config $name
# Set defaults
: ${spamd_enable:="NO"}
: ${spamd_flags="-c "}
pidfile=${spamd_pidfile:-"/var/run/spamd/spamd.pid"}
command=/usr/local/bin/spamd
command_args="--max-children=16 --min-children=8 --max-conn-per-child=10 -d -r ${pidfile}"
required_dirs=/usr/local/share/spamassassin
stop_postcmd=stop_postcmd
stop_postcmd()
{
rm -f $pidfile
}
run_rc_command "$1"
????
bobot
-
Lord Beaver
- рядовой
- Сообщения: 31
- Зарегистрирован: 2009-12-26 20:37:45
- Откуда: Волгоград
Непрочитанное сообщение
Lord Beaver » 2010-02-18 11:59:31
bobot писал(а):С этим я разобрался нормально!! но всёравно спам валит хоть греби лопатой!! уже уши опухли от телефонных звонков...
Уже даже и не знаю что делать!!!!!!
Может стоит начать отсеивать спам ещё
до фильтра?
bobot писал(а):у меня получается не создаётся база данных, в конфиге путь прописан (я читал что она должна автоматом создаваться, но почему то не создаётся)
А правила через sa-compile вообще создавали?
Lord Beaver
-
bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Непрочитанное сообщение
bobot » 2010-02-18 12:12:41
Lord Beaver писал(а):bobot писал(а):С этим я разобрался нормально!! но всёравно спам валит хоть греби лопатой!! уже уши опухли от телефонных звонков...
Уже даже и не знаю что делать!!!!!!
Может стоит начать отсеивать спам ещё
до фильтра?
bobot писал(а):у меня получается не создаётся база данных, в конфиге путь прописан (я читал что она должна автоматом создаваться, но почему то не создаётся)
А правила через sa-compile вообще создавали?
нет не задавал правил с помощью sa-compile ............
ну вы имеете ввиду спам отсеивать до фильтра это как?
А можно на примере показать как задавать правила с помощью sa-compile
Код: Выделить всё
sa-compile [options]
Options:
--list Output base string list to STDOUT
--sudo Use 'sudo' for privilege escalation
--keep-tmps Keep temporary files instead of deleting
-C path, --configpath=path, --config-file=path
Path to standard configuration dir
-p prefs, --prefspath=file, --prefs-file=file
Set user preferences file
--siteconfigpath=path Path for site configs
(default: /etc/mail/spamassassin)
--updatedir=path Directory to place updates
(default: /var/lib/spamassassin/compiled/<perlversion>/<version>)
--cf='config line' Additional line of configuration
-D, --debug [area=n,...] Print debugging messages
-V, --version Print version
-h, --help Print usage message
bobot
-
Lord Beaver
- рядовой
- Сообщения: 31
- Зарегистрирован: 2009-12-26 20:37:45
- Откуда: Волгоград
Непрочитанное сообщение
Lord Beaver » 2010-02-18 13:25:21
bobot писал(а):ну вы имеете ввиду спам отсеивать до фильтра это как?
Проверять клиента на соответствие RFC, PTR и A записи домена, грейлистинг, а уж потом фильтры. При таком подходе спама будут считанные единицы в месяц.
bobot писал(а): А можно на примере показать как задавать правила с помощью sa-compile
В общем случае достаточно
Lord Beaver
-
bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Непрочитанное сообщение
bobot » 2010-02-18 13:33:29
Lord Beaver писал(а):bobot писал(а):ну вы имеете ввиду спам отсеивать до фильтра это как?
Проверять клиента на соответствие RFC, PTR и A записи домена, грейлистинг, а уж потом фильтры. При таком подходе спама будут считанные единицы в месяц.
bobot писал(а): А можно на примере показать как задавать правила с помощью sa-compile
В общем случае достаточно
я вот так ставлю это нормально
Код: Выделить всё
/usr/ports/mail/p5-Mail-SpamAssassin
#make
x AS_ROOT (потом исправим )
x SSL (в принипе тоже не использую)
x RAZOR
x SPF_QUERY
#make install
редактируем /usr/local/etc/rc.d/sa-spamd.sh
command_args="-d -r ${pidfile}" исправляем на
command_args="-x -d -m 5 -r ${pidfile}"
добавляем в /etc/rc.conf
spamd_enable="YES"
# mkdir -p /var/spool/filter/spamassassin/
# chmod -R 777 /var/spool/filter
создаем файл
/usr/local/etc/mail/spamassassin/local.cf
##############################################
#
##############################################
lock_method flock
trusted_networks 192.168/16 127/8
trusted_networks 127.
whitelist_from *@google.com
##############################################
rewrite_header subject [Possible SPAM]:
required_hits 6.0
required_score 6.0
report_safe 2
use_bayes 1
bayes_auto_learn 1
bayes_auto_learn_threshold_nonspam 0.1
bayes_auto_learn_threshold_spam 12.0
skip_rbl_checks 0
use_razor2 1
use_dcc 1
use_pyzor 1
use_auto_whitelist 1
##############################################
auto_whitelist_path /var/spool/filter/spamassassin/auto_whitelist
bayes_path /var/spool/filter/spamassassin/bayes
auto_whitelist_file_mode 0770
bayes_file_mode 0770
##############################################
ok_languages ru en
ok_locales ru en
report_charset windows-1251
##############################################
score FROM_ILLEGAL_CHARS 1.5
score HEAD_ILLEGAL_CHARS 1.5
score SUBJ_ILLEGAL_CHARS 1.5
score FORGED_IMS_TAGS 0.5
#
##############################################
score BAYES_00 -9.8
score BAYES_20 -2.856
score BAYES_40 -0.002
score BAYES_60 0.002
score BAYES_80 3.314
score BAYES_99 10.8
bobot
-
bobot
- ст. прапорщик
- Сообщения: 589
- Зарегистрирован: 2008-05-28 20:03:17
Непрочитанное сообщение
bobot » 2010-02-18 14:17:20
Lord Beaver писал(а):bobot писал(а):ну вы имеете ввиду спам отсеивать до фильтра это как?
Проверять клиента на соответствие RFC, PTR и A записи домена, грейлистинг, а уж потом фильтры. При таком подходе спама будут считанные единицы в месяц.
можно вот так greylist сделать
Код: Выделить всё
CREATE TABLE `Greylist` (
`id` bigint(20) NOT NULL auto_increment,
`relay_ip` char(15) default NULL,
`sender` char(64) default NULL,
`recipient` char(64) default NULL,
`block_expires` int(11) NOT NULL default '0',
`record_expires` int(11) NOT NULL default '0',
`create_time` int(10) unsigned NOT NULL default '0',
`pass_count` int(10) unsigned NOT NULL default '0',
`block_count` int(10) unsigned NOT NULL default '0',
`ehlo` char(64) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `relay_ip` (`relay_ip`,`sender`,`recipient`)
);
Теперь надо прописать в конфиг exim'а:
а) в самом начале прописать макросы:
GREYLIST_TEST=SELECT concat("id=",id," ts=",(unix_timestamp()-block_expires)) \
from Greylist \
where relay_ip='${quote_mysql:$sender_host_address}' and \
sender='${quote_mysql:$sender_address}' and \
recipient='${quote_mysql:$local_part}@${quote_mysql:$domain}' limit 1
GREYLIST_ADD=INSERT into Greylist (relay_ip,sender,recipient,\
block_expires,record_expires,create_time,block_count,ehlo) \
values \
('${quote_mysql:$sender_host_address}',\
'${quote_mysql:$sender_address}',\
'${quote_mysql:$local_part}@${quote_mysql:$domain}',\
unix_timestamp()+60*15,unix_timestamp()+60*60*24,unix_timestamp(),1,\
'${quote_mysql:$sender_helo_name}')
GREYLIST_UPD1=UPDATE Greylist set pass_count=pass_count+1,\
record_expires=unix_timestamp()+60*60*24 where id=$acl_m2
GREYLIST_UPD2=UPDATE Greylist set block_count=block_count+1 where id=$acl_m2
б) в блоке ACL настроек после RCPT TO в нужном месте прописать сами директивы:
# set variables
warn set acl_m1 = ${lookup mysql{GREYLIST_TEST}{$value}{id=-1 ts=0}}
set acl_m2 = ${extract{id}{$acl_m1}{$value}{unknown}}
set acl_m3 = ${extract{ts}{$acl_m1}{$value}{unknown}}
# defer if first attempt
defer hosts = ! +relay_hosts
condition = ${if < {$acl_m2}{0}{yes}{no}}
set acl_m4 = ${lookup mysql{GREYLIST_ADD}{$value}{0}}
# defer if time < block_time
defer hosts = ! +relay_hosts
condition = ${if > {$acl_m2}{0}{yes}{no}}
condition = ${if < {$acl_m3}{0}{yes}{no}}
set acl_m4 = ${lookup mysql{GREYLIST_UPD2}{$value}{0}}
# pass defers if time > block_time and update count
warn hosts = ! +relay_hosts
set acl_m4 = ${lookup mysql{GREYLIST_UPD1}{$value}{0}}
bobot