Exim callout

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

IMB
Сообщения: 2567
ОС: Debian

Exim callout

Сообщение IMB »

Доброго дня!
Хочется настроить грамотный callout. Изначально было сделана проверка получателей по require verify = sender. Но при этом не разрешена подобная проверка с удаленных серверов, что не совсем хорошо.
Пытаюсь настроить по http://forum.lissyara.su/viewtopic.php?f=20&t=3577 (Разрешение проверки наших получателей), но что то пустой адрес проходит.
Как сделано:

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

acl_smtp_rcpt:
................................
deny message = Sender only $authenticated_id
    authenticated       =       *
    condition = ${if !eq{$authenticated_id}{$sender_address}{yes}{no}}

accept  authenticated   =       *

require verify          =       sender

deny    message         =       Your IP in HELLO, good by
        hosts           =       * : !+relay_from_hosts
        condition       =       ${if eq{$sender_helo_name}{$sender_host_address}{true}{false}}
        !senders = :

................................

acl_smtp_predata:
deny message = "Unknow user"
    condition = ${if math{$recipients}{mailer-daemon}{yes}{no}}
deny message = "Unknow user"
    senders = :
accept

Может подскажите в чем проблема?
Спасибо.

P.S. Ну а если приведете свой конфиг callout будет совсем великолепно.
P.P.S. И попутно, может кто нибудь объяснит принцип выставления accept в acl?
Допустим у меня есть конфиг вида:

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

begin acl
acl_smtp_helo:

acl_smtp_mail:

acl_smtp_rcpt:

Должен ли я в конце каждого блока ставить accept? Если не должен, какие правила регламентируют данную расстановку?
Спасибо.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Exim callout

Сообщение Ленивая Бестолочь »

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

  # проверка существования ящика отправителя с помощью callout.
  deny
    !hosts         = ${lookup{$sender_host_address}wildlsearch{/etc/exim4/no_callback}}
    message        = <$sender_address> does not exist. liar, go away!
    log_message    = callback for $sender_address failed. denied.
    !verify         = sender/callout=40s,defer_ok

делаем попытку отправить письмо отправителю, ждем 40 сек, в случае временной ошибки (сервер не доступен) - считается что все ок и письмо пропускаем.
в /etx/exim4/no_callback складируется почетный список сексуальных меньшинств у которых сервер не отвечает ok на rcpt to (exchange server, будь он неладен).

IMB писал(а):
31.08.2009 13:08
Должен ли я в конце каждого блока ставить accept?

по умолчанию вроде как в конце каждого блока deny. но я обычно туда пишу свой deny, чтобы сделать log_message и message свой.
а правила составляю так, чтобы при "хорошем" письме сработал какой-нибудь accept.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Exim callout

Сообщение IMB »

Спасибо, интересно.
Сервер я настроил, в том числе и callout по приведенной ранее ссылке, в тестовой сети вроде работает.
А вот по поводу оформления блоков acl что-то не понятно. Я в конце каждого выставил accept, сервер работает как задумывал. Но вот эта неопределеность немного напрягает, в документации ничего не могу найти по этому вопросу.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Exim callout

Сообщение Ленивая Бестолочь »

IMB писал(а):
31.08.2009 22:43
в документации ничего не могу найти по этому вопросу.

счас поищу

нашел.
http://exim.org/exim-html-current/doc/html...ex.html#toc0320
For any defined ACL, the default action when control reaches the end of the ACL statements is ”deny”.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали: