Страница 1 из 2
exim антиспам настройка
Добавлено: 2009-03-03 10:56:44
Fix
Здравствуйте!!
Я согласен, что афтор нуп и опозорился, но всеже...
Форум я читал статьи тоже. Проблема в том что достался мне сервер почтовый на базе Exim, и достал меня ужо спам. Вот решил както с ним побороться из всего что у меня в конвиге я понял что есть только колауты и закрытый релей. Так вот собственно вопрос можно ли с помощью только одного екзима уменьшить поток спама?? (конфи из
http://www.lissyara.su/?id=1194 видел если еще чтото?)
Re: Помогите ламеру. плиз.
Добавлено: 2009-03-03 11:20:49
estade
Fix писал(а):Здравствуйте!!
Здаров!
Fix писал(а):Я согласен, что афтор нуп и опозорился, но всеже...
Ну зачем же так сразу..все мы чему то постоянно учимся))
Fix писал(а):достал меня ужо спам
Ну вообщем то неприятная штука
Fix писал(а):Так вот собственно вопрос можно ли с помощью только одного екзима уменьшить поток спама?? (конфи из
http://www.lissyara.su/?id=1194 видел если еще чтото?)
Очень хорошо что видел..а можно увидеть твои конфиги экзима хотя бы.
Можно спамассасин или дспам поставить еще меньше поток спаму будет

Re: Помогите ламеру. плиз.
Добавлено: 2009-03-03 11:36:29
Fix
Нужен целиком конфиг или какуе то его часть? скажем с begin acl??
предоставим
а самое печальное что я практически не умею ставит пакеты и порты(((
Re: Помогите ламеру. плиз.
Добавлено: 2009-03-03 11:56:36
estade
Fix писал(а):Нужен целиком конфиг или какуе то его часть? скажем с begin acl??
А давай целиком...гулять так гулять
Fix писал(а):а самое печальное что я практически не умею ставит пакеты и порты(((
а что их уметь ставить то, инструкций в инете навалом, вполне достаточно
http://www.freebsd.org/doc/ru_RU.KOI8-R ... using.html
Re: Помогите ламеру. плиз.
Добавлено: 2009-03-03 12:16:12
Fix
весь пока не выложу вот кусочек
Код: Выделить всё
begin acl
acl_check_rcpt:
accept hosts = :
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
#ltk
deny message = Invalid account $sender_address_local_part
condition = ${if match {$sender_address_local_part}{\N^(\.|.+\.\.|
.*[\%\/\!\&\@\|\~\`])\N} {yes}{no}}
#ltk
accept local_parts = postmaster
# domains = +local_domains
domains = +local_domains : +relay_to_domains
# require verify = sender
require verify = sender/callout=10s,defer_ok
require logwrite = sender_address = $sender_address
hosts = *
deny message = don't spam me
senders = www@test.com.ua
# accept hosts = +relay_from_hosts
# verify = recipient
accept hosts = +relay_from_hosts
verify = recipient/callout=10s,use_sender,defer_ok
accept authenticated = *
control = submission
#this trick can allso be used to stop spamers from attempting to use "From:"
#adress. Updeter Fix
deny message = You are not in the office
log_message = LOCAL_DOMAINS relay prohibited outside \
LAN for $sender_address
!hosts = +relay_from_hosts
sender_domains = +local_domains
# Fix
require message = relay not permitted
domains = +local_domains : +relay_to_domains
accept domains = +local_domains
endpass
verify = recipient
accept domains = +relay_to_domains
endpass
verify = recipient
accept hosts = +relay_from_hosts
control = submission
accept authenticated = *
deny message = relay not permitted
Re: exim антиспам настройка
Добавлено: 2009-03-03 15:57:12
princeps
Дружище, пошарь по статьям на сайте и посмотри там acl. У меня средствами exim без контент-проверок рубится 99,2% спама.
Fix писал(а):
а самое печальное что я практически не умею ставит пакеты и порты(((
У тебя какая ОС?
Re: exim антиспам настройка
Добавлено: 2009-03-03 18:04:44
Laa
Ну с настройкой портов и пакетов Вам таки надо почитать документации по своей ОС, почитать форумы. Захотеть разобраться, да, будут ошибки, будут сбои и будут трудности, никто не говорил, что будет легко. Но это лучше таки знать самому, с вас же и спросит ваше же руководство.
А по поводу настройки exim, конфиг интересный, но требует массу доработок.
Вы для себя понимаете его полностью??? Точно?
Не ищите готовый конфиг, который можно взять и поставить, этим вы только себе навредите. Ищите для начала acl которые могут отсекать какой-то спам, потом тоже для других видом спама и тд. Потом вы начнете понимать как работают acl, какие встречаются подводные камни. Начнете писать acl сами. Вместо вас этот путь никто из форума не пройдет...
Удачи!
Re: exim антиспам настройка
Добавлено: 2009-03-03 21:18:49
flot
В вашем конфиге почти нет никаких проверок на спам.
Советую добавить
Код: Выделить всё
deny message = "HELO is not hostname or IP address (see RFC 821, 2821)"
condition = ${if match{$sender_helo_name}\
{\N\.\N}{no}{yes}}
deny message = "HELO is IP address, sorry"
condition = ${if match{$sender_helo_name}\
{\N^[\[\]\d\.]+$\N}{yes}{no}}
warn set acl_m1 = ${lookup dnsdb{defer_never,a=$sender_helo_name}{$value}{false}}
deny message = "HELO is not hostname (lookup failed)"
condition = ${if eq{$acl_m1}{false}{true}{false}}
!spf = pass
deny message = "Bad word in host name"
condition = ${if match{$sender_host_name $sender_helo_name} \
{adsl|dialup|dial-up|dialin|pool|peer|dhcp|pppoe|dynamic}{yes}{no}}
!spf = pass
deny message = "Bad number in host name"
condition = ${if match{$sender_host_name $sender_helo_name} \
{\N\d+[-\.]\d+[-\.]\d+\N}{yes}{no}}
!spf = pass
deny message = "host in blacklist - $dnslist_domain $dnslist_text"
hosts = !+relay_from_hosts
dnslists = proxies.blackholes.easynet.nl : \
cbl.abuseat.org : \
sbl.spamhaus.org : \
bl.spamcop.net
deny message = "$sender_host_address is not allowed to send mail from $sender_address_domain (SPF fail)"
spf = fail
И только после них проверять callout.
Re: exim антиспам настройка
Добавлено: 2009-03-03 22:10:58
Laa
Может я и баян растяну, но я не понимаю этого:
Код: Выделить всё
deny message = "Bad world in host name"
condition = ${if match{$sender_host_name $sender_helo_name} \
{adsl|dialup|dial-up|dialin|pool|peer|dhcp|pppoe|dynamic}{yes}{no}}
!spf = pass
разжуйте мне кондишен.
Даже, если я туплю и кондишен похож на правду, то как это сработает с почтой от dhcp.org или dialin.at или adsl.ru?
И вот по этому:
Код: Выделить всё
warn set acl_m1 = ${lookup dnsdb{defer_never,a=$sender_helo_name}{$value}{false}}
поясните мне смысл задрачивания ДНС-сервера запросами по $sender_helo_name скажем такому (вполне не плохому) [11.22.33.44] (этот получит deny чуть раньше, ладно..

), но что делать с helo=QWERTY и другими, которые любят вводить боты? Зачем к ДНС слать запросы на helo, на который ДНС точно ничего хорошего не ответит?
Еще важно не забывать разрешать NULL-сендеру сделать sender-verify (а-то кривонастроенный удаленный почтовый сервер не примет ваше письмо, что будете своим пользователям говорить?), то есть не отрубить его до predata... короче, тонкостей много... советую крепко задумываться над тем, как работает почта.

Re: exim антиспам настройка
Добавлено: 2009-03-03 22:12:23
Alex Keda
а как подумал, так и сработает

в доке всё есть.
Re: exim антиспам настройка
Добавлено: 2009-03-03 22:22:38
Laa
lissyara писал(а):а как подумал, так и сработает

в доке всё есть.
Отжешь, еще раз открыл, перечитал, не нашел.
Читал это вот:
Код: Выделить всё
match {<string1>}{<string2>}
The two substrings are first expanded. The second is then treated as a
regular expression and applied to the first. Because of the pre-expansion,
if the regular expression contains dollar, or backslash characters, they
must be escaped. Care must also be taken if the regular expression contains
braces (curly brackets). A closing brace must be escaped so that it is not
taken as a premature termination of <string2>. The easiest approach is to
use the "\N" feature to disable expansion of the regular expression. For
example,
${if match {$local_part}{\N^\d{3}\N} ...
If the whole expansion string is in double quotes, further escaping of
backslashes is also required.
The condition is true if the regular expression match succeeds. The regular
expression is not required to begin with a circumflex metacharacter, but if
there is no circumflex, the expression is not anchored, and it may match
anywhere in the subject, not just at the start. If you want the pattern to
match at the end of the subject, you must include the "$" metacharacter at
an appropriate point.
At the start of an if expansion the values of the numeric variable
substitutions $1 etc. are remembered. Obeying a match condition that
succeeds causes them to be reset to the substrings of that condition and
they will have these values during the expansion of the success string. At
the end of the if expansion, the previous values are restored. After
testing a combination of conditions using or, the subsequent values of the
numeric variables are those of the condition that succeeded.
не то? Или не увидел?

Re: exim антиспам настройка
Добавлено: 2009-03-03 22:35:08
flot
Laa писал(а):Может я и баян растяну, но я не понимаю этого:
что делать с helo=QWERTY и другими, которые любят вводить боты? Зачем к ДНС слать запросы на helo, на который ДНС точно ничего хорошего не ответит?
Вы совершенно не внимательны, самая первая проверка срежет и до ДНС дело не дойдет.
Даже, если я туплю и кондишен похож на правду, то как это (четвертая проверка) сработает с почтой от dhcp.org или dialin.at или adsl.ru?
Да, мои проверки зарубят. Если вам нужна почта от таких хостов - не включайте данную проверку.
Re: exim антиспам настройка
Добавлено: 2009-03-03 22:45:24
Laa
ok! по первой проверке таки согласен, не обратил внимания на расположение {no}{yes}
А по второму вопросу -- мне лично не нужна почта от adsl.ru и тд, но я не могу опросить ВСЕХ своих пользователей и точно знать, что ВСЕМ им не нужна от туда почта. Мало ли, вдруг кому-то пошлют жирный контракт от туда, а я зарублю его...

ну да ладно... кто как хочет... просто рекомендую думать всем, кто будет эти acl внедрять!
Лично к автору у меня нет никаких претензий.
Все, я откланиваюсь.

Re: exim антиспам настройка
Добавлено: 2009-03-04 9:29:08
princeps
У Laa особая ситуация со спамом, ему нельзя его полностью рубить, в соседнем топике мы с ним этот вопрос обсудили

Для среднего офиса, где 50-100 пользователей и админ каждого знает в лицо эти acl нормально подходят.
Laa писал(а):Мало ли, вдруг кому-то пошлют жирный контракт от туда, а я зарублю его...

ну да ладно... кто как хочет... просто рекомендую думать всем, кто будет эти acl внедрять!
вайт-листы в 90% случаев спасают отцов русской демократии
Кроме того, не хочу показаться снобом, но вот эта строка:
"Bad world in host name"
в переводе означает "плохой мир в имени хоста"

Надо заменить world на word.
Re: exim антиспам настройка
Добавлено: 2009-03-04 9:53:58
flot
Спасибо, поправил.
Кстати заметил, что есть домены в которых прописано в SPF записи "+all" в конце. Вот думаю как бы банить всю почту от таких доменов...
Re: exim антиспам настройка
Добавлено: 2009-03-04 9:55:27
Laa
+1, часто бывают такие веселые описания кодов ошибок у некоторых... диву даешься.
Вот вчера знакомый (эдакий рассыльщик своего прайсика, микро-спамер

) слал письмо на mail.ru, а там пришел отлуп типа нет такого юзера, а от меня telnet-ehlo-mail from-rcpt-to показало, что такой юзер есть.... Вот я думаю, может лучше спамерам выдавать вместо "ты в блэклисте, отвали!" отлуп типа такого "Unknown account" ??? А от тех, у кого все хорошо (helo, rbl, syntax, spf...) просто принимать письмо. Один фиг, в основной своей массе спам шлется с ботнетов или троянов, а если какой и выполняет анализ, то глядишь и вынесет после некоторого кол-ва попыток из своей базейки... кто что думает?
Re: exim антиспам настройка
Добавлено: 2009-03-04 10:00:53
Laa
flot писал(а):Спасибо, поправил.
Кстати заметил, что есть домены в которых прописано в SPF записи "+all" в конце. Вот думаю как бы банить всю почту от таких доменов...
Может для таких давать boxtrapper? Но это надо обсудить со своими юзерами... думаю для таких это решение даст неплохой результат. Хотя надо думать...

Re: exim антиспам настройка
Добавлено: 2009-03-04 10:29:05
princeps
Laa писал(а):Вот я думаю, может лучше спамерам выдавать вместо "ты в блэклисте, отвали!" отлуп типа такого "Unknown account" ???
Это хоть и с небольшой вероятностью, но все же может быть просто неправильно настроенный не-спамерский сервер. И тогда системный администратор этого сервера сойдет с ума, пытаясь определить, почему не доходят письма. Я несколько раз сталкивался с таким.
Re: exim антиспам настройка
Добавлено: 2009-03-04 10:36:28
Fix
Вот порывшись набрасал конфиг, уважаемые гуру поругайте.
Код: Выделить всё
begin acl
acl_check_rcpt:
accept hosts = :
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
deny message = Invalid account $sender_address_local_part
condition = ${if match {$sender_address_local_part}{\N^(\.|.+\.\.|
.*[\%\/\!\&\@\|\~\`])\N} {yes}{no}}
accept local_parts = postmaster
domains = +local_domains
deny message = "HELO/EHLO require by SMTP RFC"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
deny message = "HELO is not hostname or IP address (see RFC 821, 2821)"
condition = ${if match{$sender_helo_name}\
{\N\.\N}{no}{yes}}
deny message = "HELO is IP address, sorry"
condition = ${if match{$sender_helo_name}\
{\N^[\[\]\d\.]+$\N}{yes}{no}}
warn set acl_m1 = ${lookup dnsdb{defer_never,a=$sender_helo_name}{$value}{false}}
deny message = "HELO is not hostname (lookup failed)"
condition = ${if eq{$acl_m1}{false}{true}{false}}
!spf = pass
deny message = "host in blacklist - $dnslist_domain $dnslist_text"
hosts = !+relay_from_hosts
dnslists = proxies.blackholes.easynet.nl : \
cbl.abuseat.org : \
sbl.spamhaus.org : \
bl.spamcop.net
deny message = "$sender_host_address is not allowed to send mail from $sender_address_domain (SPF fail)"
spf = fail
require verify = sender/callout=10s,defer_ok
require logwrite = sender_address = $sender_address
hosts = *
deny message = don't spam me
senders = www@test.com.ua
accept hosts = +relay_from_hosts
verify = recipient/callout=10s,use_sender,defer_ok
accept authenticated = *
control = submission
require message = relay not permitted
domains = +local_domains : +relay_to_domains
accept domains = +local_domains
endpass
verify = recipient
accept domains = +relay_to_domains
endpass
verify = recipient
accept hosts = +relay_from_hosts
control = submission
accept authenticated = *
deny message = relay not permitted
Re: exim антиспам настройка
Добавлено: 2009-03-04 14:09:29
Laa
Мне кажется, что тут:
Код: Выделить всё
deny message = "HELO is not hostname (lookup failed)"
condition = ${if eq{$acl_m1}{false}{true}{false}}
!spf = pass
стоит добавить
для того чтобы не дергать зазря DNS при удаленных sender-verify. Ну и эту мысль применить и дальше. Можно для этого сделать меточку acl_m_xx , а в predata рубить, если метка позволяет. Дабы не зарубить удаленный sender-verify у ваших же кривых получателей (вы же хотите, чтобы от вас было принято письмо?). Давайте это обсудим, может есть другие мысли по этому поводу?
Re: exim антиспам настройка
Добавлено: 2009-03-04 14:15:33
Laa
в догонку: аутентифицированных отправителей лучше разместить пораньше, дабы зазря не рубануть аутентифицированного отправителя на проверках rbl и тд.
callout думаю нужно обдумать, и, возможно сделать подольше, так как многие любят баловаться delay-ями по случаю и без случая...
еще рекомендую такой RBL (я наблюдал за ним долго, доволен):
Код: Выделить всё
dnslists = hostkarma.junkemailfilter.com=127.0.0.2
+ задуматься о dns-white-lists, типа list.dnswl.org, hostkarma.junkemailfilter.com=127.0.0.1 и тд
Re: exim антиспам настройка
Добавлено: 2009-03-04 19:22:30
princeps
Это самый минимум

80% спама где-то зарубишь.
Laa писал(а):+ задуматься о dns-white-lists, типа list.dnswl.org, hostkarma.junkemailfilter.com=127.0.0.1 и тд
Обязательно сделай собственный вайт-лист, в который будут попадать адреса, на которые отправлялась почта аутентифицировавшимися юзерами. В прилепленной теме есть пара вариантов.
Re: exim антиспам настройка
Добавлено: 2009-03-11 15:14:10
Fix
Код: Выделить всё
deny message = "HELO is not hostname or IP address (see RFC 821, 2821)"
condition = ${if match{$sender_helo_name}\
{\N\.\N}{no}{yes}}
вставил в конфиг екзима, многих спамеров рубит но и не дает отпроавлять почту моим локальным клиентам, скажите плиз что сделат
Re: exim антиспам настройка
Добавлено: 2009-03-11 15:41:21
Laa
Выполнять проверку свой-не-свой ДО этого правила. И лучше вообще своих проверять в самом начале, чтобы не рубануть своих по RBL, HELO и тд...
Re: exim антиспам настройка
Добавлено: 2009-03-12 11:12:18
Fix
Как это ужасно быть ламером и ничего не понимать (((
Опробовал конфиг, что приводил выше. Зарезало почту от локальных пользователей, не дает им отправлять письма(((
много думал решил исправить конфиг , выношу на ваш суд
Код: Выделить всё
acl_check_rcpt:
accept hosts = :
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
deny message = Invalid account $sender_address_local_part
condition = ${if match {$sender_address_local_part}{\N^(\.|.+\.\.|
.*[\%\/\!\&\@\|\~\`])\N} {yes}{no}}
accept local_parts = postmaster
domains = +local_domains
# дальше я хочу пропустить локальных пользователей чтобы их не срезало на других проверках
accept domains = +local_domains
endpass
verify = recipient
accept domains = +relay_to_domains
endpass
verify = recipient
accept hosts = +relay_from_hosts
control = submission
accept authenticated = *
# вот так их и пропустим, или я глупый и делаю чтото не то??
# то с помощю чего хочу убавить спам
deny message = "HELO/EHLO require by SMTP RFC"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
deny message = "HELO is not hostname or IP address (see RFC 821, 2821)"
condition = ${if match{$sender_helo_name}\
{\N\.\N}{no}{yes}}
deny message = "HELO is IP address, sorry"
condition = ${if match{$sender_helo_name}\
{\N^[\[\]\d\.]+$\N}{yes}{no}}
warn set acl_m1 = ${lookup dnsdb{defer_never,a=$sender_helo_name}{$value}{false}}
deny message = "HELO is not hostname (lookup failed)"
condition = ${if eq{$acl_m1}{false}{true}{false}}
!spf = pass
deny message = "host in blacklist - $dnslist_domain $dnslist_text"
hosts = !+relay_from_hosts
dnslists = proxies.blackholes.easynet.nl : \
cbl.abuseat.org : \
sbl.spamhaus.org : \
bl.spamcop.net
deny message = "$sender_host_address is not allowed to send mail from $sender_address_domain (SPF fail)"
spf = fail
# если я правильно понимаю строки вида hosts = * : !127.0.0.1 : !localhost можно убрать из проверок так как своих я уже пропусил
# в этой части я совсем не уверен
require verify = sender/callout=10s,defer_ok
require logwrite = sender_address = $sender_address
hosts = *
deny message = don't spam me
senders = www@test.com.ua
accept hosts = +relay_from_hosts
verify = recipient/callout=10s,use_sender,defer_ok
accept authenticated = *
control = submission
#####
deny message = relay not permitted
вот такой конфиг , может я в корне не прав и чегото не понимаю
и еще вопрос подскажите куда посмотреть чтобы сделать вайт-листы средствами екзима??