Страница 1 из 1

помогите с fakereject и exim

Добавлено: 2008-01-26 15:28:47
kotz
Здравствуйте!

Подскажите пожалуйста пример правила по использованию fakereject
хотелось бы для некоторых адресов, делать эмуляцию reject - это может быть домен, пользователь, либо часть адреса, например:
*@domain.com
user@*
*user*

итд

нашел такое правило:
deny hosts = ...
!senders = *@my.domain.example
message = Invalid sender from client host

как можно переделать этот пример на fakereject и главное в какое место конфига его вставлять?
пытался сам делать чрез if и проверки на содержание, так после этих экспериментов exim вообще перестает принимать и отсылать письма, кроме как локальным пользователям :(

заранее огромное спасибо!

Re: помогите с fakereject и exim

Добавлено: 2008-01-26 21:15:48
Alex Keda
http://www.lissyara.su/?id=1239#fakereject
поиск по сайту даёт лишь одну ссылку...
это было сложно сделать самому?

Re: помогите с fakereject и exim

Добавлено: 2008-01-26 21:22:53
kotz
lissyara писал(а):http://www.lissyara.su/?id=1239#fakereject
поиск по сайту даёт лишь одну ссылку...
это было сложно сделать самому?
поиск дает ссылку на документацию, которой полно в интернете слово в слово
хотел узнать у людей, которые с этой настройкой работали на практике, как составить правило, в каком месте его разместить, чтоб не было проблем, которые перечислил (отказ в отсылке всех писем, из-за неправильного составленного выражения)

Re: помогите с fakereject и exim

Добавлено: 2008-01-26 21:25:02
Alex Keda
http://www.lissyara.su/?id=1239#fakereject писал(а):Это средство управления разрешено лишь для ACL MAIL, RCPT, и DATA, другими словами, лишь когда получается SMTP сообщение.
собственно - там всё сказано..
ты показывай что сделал и что не работает.
за тебя писать никто не будет.
а вот помочь - всегда рады.

Re: помогите с fakereject и exim

Добавлено: 2008-01-26 23:04:13
kotz
так как с exim на ВЫ
то я делал так, но это точно не рабочий вариант получился :(


#warn condition = ${if $sender_address matches "username" {yes}{no}}
# control = fakereject/This message rated as spam

а вставлял это после этого


# Accept if the source is local SMTP (i.e. not over TCP/IP). We do this by
# testing for an empty sending host field.
accept hosts = xxx.xxx.xx.86:xxx.xxx.xxx.84:xxxx.85:xxxx83:
deny local_parts = ^.*[@%!/|]
accept local_parts = postmaster
domains = +local_domains
require verify = sender
accept domains = +local_domains
endpass
message = unknown user
verify = recipient

Re: помогите с fakereject и exim

Добавлено: 2008-01-26 23:13:30
Alex Keda
ну, от истины недалеко.
тока надо вставлять в секции даты, как и написано в документации.

Re: помогите с fakereject и exim

Добавлено: 2008-01-26 23:17:11
kotz
а проверку так делать?
#warn condition = ${if $sender_address matches "username" {yes}{no}}
или синтаксис неправильный, в плане скобок итд?

Re: помогите с fakereject и exim

Добавлено: 2008-01-26 23:41:23
Alex Keda
ты бы ту главу целиком прочитал...
там и примеры синтаксиса есть...

Re: помогите с fakereject и exim

Добавлено: 2008-01-27 12:38:52
kotz
Diagnostic-Code: smtp; 550 (Administrative prohibition)

не дает отправить теперь, ни получить ни от кого

делал так:

#acl_smtp_data = acl_check_reject_users

#acl_check_reject_users:
#warn condition = ${if match {$sender_address}{.*имя_пользователя_до_собачки.*}{yes}{no}}
# control = fakereject/This message rated as spam




Returned mail: see the transcript [FAILED(1)]

Статус доставки:
Reporting-MTA: dns; webmail13.yandex.ru
Arrival-Date: Sun, 27 Jan 2008 12:19:35 +0300
Local-Spool-ID: S3784782AbYA0JTf

Final-Recipient: RFC822;xxxxxxx
Action: failed
Status: 5.1.1 (bad destination mailbox)
Remote-MTA: dns; xxxxx (xxxxxx.82|25|xxxxxx.6|50745)
Last-Attempt-Date: Sun, 27 Jan 2008 12:20:13 +0300
Diagnostic-Code: smtp; 550 (Administrative prohibition)

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

 FAILED:
  Final Recipient:
      RFC822;xxxxxxx
  Status:
      5.1.1 (bad destination mailbox)
  Remote MTA:
      dns; xxxxxxx (xxxxxx.82|25|xxxxx.6|50745)
  Last Attempt Date:
      Sun, 27 Jan 2008 12:20:13 +0300
  X-ZTAID:
      smtp[20577]
  Diagnostic Code:
      smtp; 550 (Administrative prohibition)
  Control data:
      smtp xxxxx xxxxxx 65534
  Diagnostic texts:
      <<- MAIL From:<xxxxx@xxxx.ru> SIZE=651
     ->> 250 OK
     <<- RCPT To:<xxxxx@xxxxx.ru>
     ->> 250 Accepted
     <<- DATA
     ->> 354 Enter message, ending with "." on a line by itself
     <<- .
     ->> 550 Administrative prohibition

Re: помогите с fakereject и exim

Добавлено: 2008-01-27 19:33:43
dikens3
acl_smtp_data = acl_check_reject_users

acl_check_reject_users:
warn condition = ${if match {$sender_address}{.*имя_пользователя_до_собачки.*}{yes}{no}}
control = fakereject/This message rated as spam

accept

Re: помогите с fakereject и exim

Добавлено: 2008-01-27 19:39:43
kotz
попробую, а почему реджкет без этого на все распространяется?
я даже почту сам отправить не могу через почтовый клиент?

Re: помогите с fakereject и exim

Добавлено: 2008-01-27 19:47:38
dikens3
попробую, а почему реджкет без этого на все распространяется?
Именно. Но не для всех необходимо писать accept (действия по умолчанию существуют для каждой цепочки). Читать тут про умолчания: http://www.lissyara.su/?id=1239#39.10

И там же ещё почитать.
http://www.lissyara.su/?id=1239#39.14

Re: помогите с fakereject и exim

Добавлено: 2008-01-27 20:11:43
kotz
а в каком месте писать этот самый accept? :)

сразу после не сработало:

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

2008-01-27 20:04:20 1JJAvc-0001uP-Ho H=(bill-0fd9170cbe) [xxxxx] F=<xxx@xxxx.ru> temporarily rejected after DATA: unknown ACL verb "acl_check_reject_users" in "acl_check_reject_users"

а после документации
http://www.lissyara.su/?id=1239#39.14

accept, как deny, warn вроде как взаимоисключающие????????

Re: помогите с fakereject и exim

Добавлено: 2008-01-27 22:07:45
dikens3

Re: помогите с fakereject и exim

Добавлено: 2008-01-30 17:51:00
kotz
итоговое правило

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

#acl_smtp_data = acl_check_reject_users

#acl_check_reject_users:
#warn   condition = ${if match {$sender_address}{username}{yes}{no}}
#accept control = fakereject

отправлял с двух ящиков, один из которых проходит проверку, второй нет

ящик который блокирую

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

using ACL "acl_check_reject_users"
processing "warn"
check condition = ${if match {$sender_address}{username}{yes}{no}}
                = YES
warn: condition test succeeded
processing "accept"
check control = fakereject
accept: condition test succeeded
calling local_scan(); timeout=300

ящик с gmail

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

using ACL "acl_check_reject_users"
processing "warn"
check condition = ${if match {$sender_address}{username}{yes}{no}}
                = NO
warn: condition test failed
processing "accept"
check control = fakereject
accept: condition test succeeded
аутлуп идет обоим! вообщем, любому кто напишит :(
как теперь доделать, чтоб срабатывало только если условие совпадало бы.....

помогите пжл!!!!

Re: помогите с fakereject и exim

Добавлено: 2008-01-30 19:01:13
dikens3

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

acl_smtp_data = acl_check_reject_users

acl_check_reject_users:
warn   condition = ${if match {$sender_address}{username}{yes}{no}}
       control = fakereject

accept
это 2-а отдельных блока (ACL)
1-й:

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

warn   condition = ${if match {$sender_address}{username}{yes}{no}}
       control = fakereject
и 2-й:

Re: помогите с fakereject и exim

Добавлено: 2008-01-30 22:05:18
kotz
спасибо, все заработало!!!!

в первый раз ошибка из-за того что строчку не вставил пустую перед aсcept и предыдущего правила