Всем привет. Есть ПОЧТОВЫЙ сервер со следующим составом ПО:
Система ASP Linux 12
Ядро 2.6.22.9-91.0.120asp
Работает связка Sendmail (8.14.1) + SpamAssassin (3.2.4) + Clamav (0.95.1)60 % спама отрезает сам sendmail проверяя ip адреса по базам DNSBL,
потом работает SpamAssassin.Спамеры как то узнают, что у меня спам не проверяется для локальных пользователей (whitelist_from *@local_domen.ru) и пользуясь этим подставляют в поле From: адреса локальных почтовых ящиков(!) и беспрепятственно рассылают спам по моим почтовым ящикам.
Если я убираю локальные домены из белого списка, то много нужных исходящих писем попадает в спам.
Как быть? Я так понимаю, что поле заголовка Return-Path: подделать невозможно, и нужно как то заставить или assassin или программу procmail сравнивать с заголовком From:! Если адреса разные, то отправлять в спам.Может это умеет делать spamassassin? И почему он тогда не проверяет вместо From заголовок Return-Path ?
----------------
конфиг Saendmai:define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST', true)dnl
define(`confDONT_PROBE_INTERFACES')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confLOG_LEVEL', `15')dnl
FEATURE(`local_procmail')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`access_db',`hash -T<TMPF> /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`dnsbl', `bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}')dnl
FEATURE(`dnsbl', `xbl.spamhaus.org', `"You are trying to send spam - see http://www.spamhaus.org')dnl
FEATURE(`dnsbl', `sbl.spamhaus.org', `"You are trying to send spam - see http://www.spamhaus.org')dnl
define(`confMAX_RCPTS_PER_MESSAGE', `20')dnl
define(`confMAX_MESSAGE_SIZE', `20485760')dnl
define(`confTO_IDENT', `0')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
INPUT_MAIL_FILTER(`clamav-milter',`S=local:/var/run/clamav-milter/clamav.sock,F=,T=S:4m;R:4m')dnl
INPUT_MAIL_FILTER(`spamass-milter', `S=local:/var/run/spamass-milter/spamass-milter.sock,F=T,T=C:15m;S:4m;R:4m;E:10m')dnl
define(`confINPUT_MAIL_FILTERS', `spamass-milter, clamav-milter')dnl
define(`confSMTP_LOGIN_MSG', `$b')dnl
define(`always_add_domain')dnl
define(`confAUTH_OPTIONS', `A y')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`CERT_DIR', `/etc/pki/tls/certs')dnl
define(`confCACERT_PATH', `CERT_DIR')dnl
define(`confCACERT', `CERT_DIR/ca-bundle.crt')dnl
define(`confSERVER_CERT', `CERT_DIR/sendmail.pem')dnl
define(`confSERVER_KEY', `CERT_DIR/sendmail.pem')dnl
define(`confCLIENT_CERT', `CERT_DIR/sendmail.pem')dnl
define(`confCLIENT_KEY', `CERT_DIR/sendmail.pem')dnl
define(`confCRL', `CERT_DIR/revocation.list')dnl
EXPOSED_USER(`root')dnl
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA', E=Ma)dnl
DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=s',E=Ma)dnl
MAILER(`procmail')dnl
MAILER(`local')dnl
MAILER(`smtp')dnl-------------------------------------------------------------------
Конфиг SpamAssassin:trusted_networks 212.34.**.***
trusted_networks 212.34.**.***
trusted_networks 87.240.**.**
trusted_networks 213.252.**.**
trusted_networks 217.197.***.***
trusted_networks 192.168.0.0
rewrite_header Subject ****SPAM*(_SCORE_)****
subject_tag *SPAM*_HITS_ points*
required_hits 3.8
auto_learn 1
use_bayes 1
use_auto_whitelist 0
bayes_auto_learn 1
bayes_path /etc/mail/spam/bayes
bayes_file_mode 0660
bayes_learn_to_journal 1
bayes_min_ham_num 1
bayes_min_spam_num 1
auto_whitelist_path /etc/mail/spam/auto_whitelist
auto_whitelist_file_mode 0666
auto_learn_threshold_nonspam -2
auto_learn_threshold_spam 9
rewrite_subject 1
ok_language en ru
ok_locales en ruuse_pyzor 1
pyzor_options --homedir /etc/mail/spamassassin
pyzor_path /usr/bin/pyzor
pyzor_add_header 1use_razor2 1
(Список локальных доменов)
whitelist_from root@localhost
whitelist_from *@local_domen_1.ru
whitelist_from *@local_domen_2.ru
whitelist_from *@local_demon_3.ru
.....
.....
blacklist_from *@hotmail.com
blacklist_from *@msn.com
blacklist_from *@cat.es
blacklist_from *@pmail.gen.nz
blacklist_from *@femenino.com
blacklist_from *@infonium.com
blacklist_from *@outblaze.com
blacklist_from *@subscribe.ru
blacklist_from *@dating.ru
blacklist_from *@rapidshare.de
blacklist_from *yahoo.com# DOMAIN
blacklist_from *.au
blacklist_from *.gov
blacklist_from *.jp
blacklist_from *.it
blacklist_from *.at
blacklist_from *.kr
blacklist_from *.org
blacklist_from *.net
blacklist_from *.nz
blacklist_from *.de
blacklist_from *.cn
blacklist_from *.nl
blacklist_from *.dk
blacklist_from *.com
blacklist_from *.ua
blacklist_from *.cz
blacklist_from *.kg
blacklist_from *.sk
blacklist_from *.uk
blacklist_from *.br
blacklist_from *.ca
blacklist_from *spam*
blacklist_from *.lv
blacklist_from *.mil
blacklist_from *.edu
blacklist_from *.hu
blacklist_from *.ee
blacklist_from *.ch
blacklist_from *.se
blacklist_from *.us
blacklist_from *.es
blacklist_from *.vn
blacklist_from *.fr
blacklist_from *.pl
blacklist_from *.ro
blacklist_from *.kz
blacklist_from *.be
blacklist_from *.gr
blacklist_from *.si
blacklist_from *.tr
blacklist_from *.cl
blacklist_from *.my
blacklist_from *.sg
blacklist_from *.fi
blacklist_from *.mx
blacklist_from *.lb
blacklist_from *.co# scores
# new
score BAYES_80 3.5
score BAYES_90 4.0
score BAYES_99 10.0
score FROM_ILLEGAL_CHARS 1.5
score HEAD_ILLEGAL_CHARS 1.5
score SUBJ_ILLEGAL_CHARS 1.5
score SUBJ_HAS_SPACES 2.5
score PENIS_ENLARGE 3.5
score PENIS_ENLARGE2 3.5
score FORGED_IMS_TAGS 0.5
score FORGED_MUA_OUTLOOK 0.5
score FORGED_OUTLOOK_TAGS 0.5score SUBJ_FULL_OF8BITS 0.1
score IN_REP_TO -0.1
score HTML_WITH_BGCOLOR 3.6
#score HTML_MESSAGE 2.0
score CTYPE_JUST_HTML 3.9
score BIG_FONT 2.7
score MONEY_MAKING 2.0
score WEB_BUGS 0.2
score MAILTO_LINK 1.3
score MAILTO_WITH_SUBJ 1.6
score MAILTO_WITH_SUBJ_REMOVE 2.2
score MAILTO_TO_SPAM_ADDR 2.0
score INVALID_DATE_ODD_MONTH 1.9
score CHARSET_FARAWAY 2.0
score CHARSET_FARAWAY_HEADERS 1.8
score CHARSET_FARAWAY_BODY 1.9
score SUBJ_HAS_UNIQ_ID 2.5
score SUBJ_ENDS_IN_Q_MARK 0.2
score SUBJ_HAS_Q_MARK 0.5
score SUPERLONG_LINE 0.9
score LINES_OF_YELLING 0.5
score LINES_OF_YELLING_2 0.7
score LINES_OF_YELLING_3 0.8
score NO_REAL_NAME 1.0 # 0.9
score TO_LOCALPART_EQ_REAL 0.8
score FROM_ENDS_IN_NUMS 1.0
score FROM_HAS_MIXED_NUMS 1.0 # 2.3
score SUBJ_ALL_CAPS 0.5
score PORN_1 1.353
score PORN_10 0.266
score PORN_11 0.879
score PORN_12 0.826
score PORN_13 4.194
score PORN_3 0.805
score PORN_4 1.491
score PORN_6 3.319
score PORN_7 1.514
score PORN_8 0.2
score PORN_9 2.692---------------------------------------------------------------
Конфиг procmail (/etc/procmailrc)
MAILDIR=$HOME/mail/maildir
DEFAULT=$MAILDIR/
LOGFILE=/var/log/procmaillog
LOGABSTRACT=yes
VERBOSE=no
:0
*^Subject:.*(SPAM|spam)
$MAILDIR/.Spam/---------------------------------------------------------------
Помогите побороть этих хитрых уродов.
не проверяй локальную почту.spamassassin-milter -i<ip_сеть>
>не проверяй локальную почту.
>
>spamassassin-milter -i<ip_сеть>А по сути нет локальной почты. Сервер сидит на внешнем статическом ip адресе. И люди подключаются с разных ip по протоколу imap. Мне нужно будет прописать ip этих удаленных сетей?
А как же trusted_networks в spamassassin?
>А как же trusted_networks в spamassassin?Для писем, полученных из trusted_networks, адреса из цепочки "Received" не проверяются в RBL - это единственное отличие. Отрицательные баллы за trusted_networks (насколько я помню) не начисляются.
Кстати, пропускать всю почту от локальных IP без проверки - это очень большой риск оказаться в RBL.
>>А как же trusted_networks в spamassassin?
>
>Для писем, полученных из trusted_networks, адреса из цепочки "Received" не проверяются в
>RBL - это единственное отличие. Отрицательные баллы за trusted_networks (насколько я
>помню) не начисляются.
>
>Кстати, пропускать всю почту от локальных IP без проверки - это очень
>большой риск оказаться в RBL.Сейчас удалю записи trusted_networks тогда вообще.
>>А как же trusted_networks в spamassassin?
>
>Для писем, полученных из trusted_networks, адреса из цепочки "Received" не проверяются в
>RBL - это единственное отличие. Отрицательные баллы за trusted_networks (насколько я
>помню) не начисляются.
>
>Кстати, пропускать всю почту от локальных IP без проверки - это очень
>большой риск оказаться в RBL.Каким образом spamassassin обезапасит от попадание в RBL?
>Каким образом spamassassin обезапасит от попадание в RBL?Если на локальной машине некое чудо подцепит клиента ботнета, и если в локальной сети подобных машин окажется достаточное количество, и если отправка с локальных машин не фильтруется спаморезкой, то попадание в блеклист - только вопрос времени. Очень короткого времени.
Как в этом может помочь spamassassin?
>Как в этом может помочь spamassassin?Будет резать эти письма и не выпускать их наружу.
>Спамеры как то узнают, что у меня спам не проверяется для локальных
>пользователей (whitelist_from *@local_domen.ru) и пользуясь этим подставляют в поле From: адреса
>локальных почтовых ящиков(!) и беспрепятственно рассылают спам по моим почтовым ящикам.Попробуйте вместо whitelist_from использовать whitelist_from_rcvd. Только там придётся указывать имя (полностью или доменную часть), которую rDNS выдаёт для IP, от которого sendmail получил письмо.
Например, если E-mail адреса имеют вид user@our.company.domain, а PTR-записи для персоналок имеют вид comp01.company.local:
whitelist_from_rcvd *@our.company.domain company.local
Другие варианты - использовать whitelist_auth (помните, что POP-before-SMTP может не прокатить) или SPF/DKIM.
(Конфиг Ваш не смотрел - не успеваю)
>[оверквотинг удален]
>
>Попробуйте вместо whitelist_from использовать whitelist_from_rcvd. Только там придётся указывать имя (полностью или
>доменную часть), которую rDNS выдаёт для IP, от которого sendmail получил
>письмо.
>Например, если E-mail адреса имеют вид user@our.company.domain, а PTR-записи для персоналок имеют
>вид comp01.company.local:
>whitelist_from_rcvd *@our.company.domain company.local
>Другие варианты - использовать whitelist_auth (помните, что POP-before-SMTP может не прокатить) или
>SPF/DKIM.
>(Конфиг Ваш не смотрел - не успеваю)Если nslookup выдает для ip адреса почтового сервера mail.server.ru Значит нужно указывать в rcvd адрес пользователя типа - user@mail.server.ru ?
А как быть если nslookup выдает только один адрес, а сервер принимает почту еще для нескольких доменов, прописаных в файле local-host-names ?
>Если nslookup выдает для ip адреса почтового сервера mail.server.ru Значит нужно указывать
>в rcvd адрес пользователя типа - user@mail.server.ru ?
>А как быть если nslookup выдает только один адрес, а сервер принимает
>почту еще для нескольких доменов, прописаных в файле local-host-names ?параметры whitelist_from с адресом получателя никак не соотносятся, они работают только с адресом отправителя. параметр whitelist_from_rcvd добавляет отрицательные баллы только в том случае, если письмо с данным адресом отправителя пришло с того IP, с которого мы его ожидаем.
если письмо от user@company.ru пришло с сервера, для IP-адреса которого nslookup выдаёт PTR-запись mail.server.ru, то пишем
whitelist_from_rcvd user@company.ru mail.server.ru
>[оверквотинг удален]
>>А как быть если nslookup выдает только один адрес, а сервер принимает
>>почту еще для нескольких доменов, прописаных в файле local-host-names ?
>
>параметры whitelist_from с адресом получателя никак не соотносятся, они работают только с
>адресом отправителя. параметр whitelist_from_rcvd добавляет отрицательные баллы только в том случае,
>если письмо с данным адресом отправителя пришло с того IP, с
>которого мы его ожидаем.
>если письмо от user@company.ru пришло с сервера, для IP-адреса которого nslookup выдаёт
>PTR-запись mail.server.ru, то пишем
>whitelist_from_rcvd user@company.ru mail.server.ruА можно вносить две записи с одинаковыми почтовыми адресами и разными адресами серверов?
Просто у меня еще прикручена веб-морда, и иногда я почту отправляю именно через веб-интерфейс, а в таком случае адрес будет локальный...
>[оверквотинг удален]
>>которого мы его ожидаем.
>>если письмо от user@company.ru пришло с сервера, для IP-адреса которого nslookup выдаёт
>>PTR-запись mail.server.ru, то пишем
>>whitelist_from_rcvd user@company.ru mail.server.ru
>
>А можно вносить две записи с одинаковыми почтовыми адресами и разными адресами
>серверов?
>Просто у меня еще прикручена веб-морда, и иногда я почту отправляю именно
>через веб-интерфейс, а в таком случае адрес будет локальный...
>А как быть, если я например человек находится дома со своим ноутом, на котором учетка рабочая. Если он через домашний интернет отправляет письмо, а в правиле whitelist_from_rcvd указан другой адрес ?
>А можно вносить две записи с одинаковыми почтовыми адресами и разными адресами
>серверов?
>Просто у меня еще прикручена веб-морда, и иногда я почту отправляю именно
>через веб-интерфейс, а в таком случае адрес будет локальный...Насколько я понимаю - можно.
Что же до подключения из дома - либо просить у провайдера фиксированный IP и PTR-запись к нему, либо записать для этого E-mail адреса шаблон, отражающий формат PTR-записей у вашего провайдера (типа *.3.2.1.dsl.provider.net для адресов 1.2.3.0/24), либо подключаться к корпоративной сети через тоннель и в параметре whitelist_from_rcvd прописать адрес клиента внутри тоннеля.
>[оверквотинг удален]
>>серверов?
>>Просто у меня еще прикручена веб-морда, и иногда я почту отправляю именно
>>через веб-интерфейс, а в таком случае адрес будет локальный...
>
>Насколько я понимаю - можно.
>Что же до подключения из дома - либо просить у провайдера фиксированный
>IP и PTR-запись к нему, либо записать для этого E-mail адреса
>шаблон, отражающий формат PTR-записей у вашего провайдера (типа *.3.2.1.dsl.provider.net для адресов
>1.2.3.0/24), либо подключаться к корпоративной сети через тоннель и в параметре
>whitelist_from_rcvd прописать адрес клиента внутри тоннеля.Это все понятно. Все действия предполагают заранее прописывать для каждого клиента кучу разной информации..-)
А как бы как бы сделать, как я уже писал в самом начале, что бы отфильтровывать спам по полю заголовка Return-Path ? Ведь если письмо приходит с нормального адреса, то в этом поле и в поле From: будет одинаковый адрес отправителя. Если адреса разные, то отправлять в папку "спам". и тогда можно будет просто воспользоваться whitelist_from, зная точно что спамерские письма с подделанными заголовками будут уже удалены....!!??
Сам как раз сегодня мучался с этим же вопросом, только у меня Postfix + spamass-milter + spamassassin.
Решил написанием правила в конфиг spamassassin'a local.cf:
header SEND_FROM_INSIDE X-Envelope-From =~ /\@(?:domain\.com|domain\.ru|domain2\.ru)>$/
describe SEND_FROM_INSIDE Sent mail from inside
score SEND_FROM_INSIDE -100
>Сам как раз сегодня мучался с этим же вопросом, только у меня
>Postfix + spamass-milter + spamassassin.
>Решил написанием правила в конфиг spamassassin'a local.cf:
>
>header SEND_FROM_INSIDE X-Envelope-From =~ /\@(?:domain\.com|domain\.ru|domain2\.ru)>$/
>describe SEND_FROM_INSIDE Sent mail from inside
>
>score SEND_FROM_INSIDE -100
>
>Здесь нужно вместо domain и domain2 ставить названия локальных доменов?
>Здесь нужно вместо domain и domain2 ставить названия локальных доменов?Почтовых доменов, у меня несколько их вот я и пишу из через |(или)
>>Здесь нужно вместо domain и domain2 ставить названия локальных доменов?
>
>Почтовых доменов, у меня несколько их вот я и пишу из через
>|(или)Сейчас буду тестировать. Спасибо огромное!!!!
>>>Здесь нужно вместо domain и domain2 ставить названия локальных доменов?
>>
>>Почтовых доменов, у меня несколько их вот я и пишу из через
>>|(или)
>
>Сейчас буду тестировать. Спасибо огромное!!!!Работает!!!!!! Супер..... Спасибо!!! Ты гений.
А какой у тебя порог срабатывания на спам стоит?
Скажи, а у тебя от какого пользователя работает spamassassin?
sa-milt 22693 0.0 0.0 4560 456 ? S Jan22 0:00 /bin/bash /usr/sbin/spamass-milter-wrapper -p /var/run/spamass-milter/spamass-milter.sock -P /var/run/spamass-milter.pid
sa-milt 22694 0.0 0.1 45564 1888 ? Sl Jan22 1:06 /usr/sbin/spamass-milter -p /var/run/spamass-milter/spamass-milter.sock -P /var/run/spamass-milter.pid
root 27047 0.0 2.7 33016 28216 ? Ss 19:56 0:02 /usr/bin/spamd -d -c -m5 -H -r /var/run/spamd.pid
root 27053 0.5 3.2 38848 34108 ? S 19:56 0:38 spamd child
root 27054 0.0 3.0 36196 31300 ? S 19:56 0:04 spamd childПолучается, что весь спам подает пользователям в папку .Spam ( Я использую для хранения почты maildir.) И эти сообщения сохраняются с правами root:mail и пользователи не могут их читать. -(
>Скажи, а у тебя от какого пользователя работает spamassassin?От sa-milt, но раскладывается по ящикам под правами пользователей. Этот параметр я указывал в настройках самого postfix'a.
>А какой у тебя порог срабатывания на спам стоит?
5
>>Скажи, а у тебя от какого пользователя работает spamassassin?
>
>От sa-milt, но раскладывается по ящикам под правами пользователей. Этот параметр я
>указывал в настройках самого postfix'a.
>
>>А какой у тебя порог срабатывания на спам стоит?
>
>5У меня почту со спамом раскладывает программа procmail
Я так понимаю, если у каждого пользователя создать свой файл procmailrc,
тогда и права на спам будут от того пользователя. Нужно это проверить.
----------------
/etc/procmailrcMAILDIR=$HOME/mail/maildir
DEFAULT=$MAILDIR/
LOGFILE=/var/log/procmaillog
LOGABSTRACT=yes
VERBOSE=no
:0
*^Subject:.*(SPAM|spam)
$MAILDIR/.Spam/