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

EXIM + FreeBSD + ACL

Добавлено: 2012-11-15 15:26:05
vdscout
Добрый день.

Подскажите, пожалуйста, что не так. Идея сделать релей для определенных доменов (от всех на конкретные) .
Конкретные прописаны в файле.
Конфигы выглядят так:

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


configure:

#Setup relay domain
domainlist my_relay_for_domains = /usr/local/etc/exim/10.relay_domains
acl_smtp_rcpt = acl_check_rcpt

begin acl

acl_check_sender:
.include_if_exists /usr/local/etc/exim/10.acl_check_sender

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

10.relay_domains:
# relay mail for this list of domains
ikmb.ru

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

10.acl_check_rcpt:

    accept message              = "Relay for $domain not permit."
        domains                 = +my_relay_for_domains
        set acl_c_spamscore     = 0
        logwrite                = "Begin: ACL_c_spamscore = $acl_c_spamscore"

accept

когда засылаем на 25-й порт серверу вот это:

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

helo ikmb.ru
mail from:<qweqweqwe@yandex.ru>
rcpt to:<dfgsdf@ikmb.ru>
он говорит что 250 "Relay for ikmb.ru not permit"
Почему? Стоит же команда accept.

а если через генератор, то:

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

qmir# /usr/local/sbin/exim -bhc 95.108.130.94

**** SMTP testing session as if from host 95.108.130.94
**** but without any ident (RFC 1413) callback.
**** This is not for real!

>>> host in hosts_connection_nolog? no (option unset)
>>> host in host_lookup? no (option unset)
>>> host in host_reject_connection? no (option unset)
>>> host in sender_unqualified_hosts? no (option unset)
>>> host in recipient_unqualified_hosts? no (option unset)
>>> host in helo_verify_hosts? no (option unset)
>>> host in helo_try_verify_hosts? no (option unset)
>>> host in helo_accept_junk_hosts? no (option unset)
220 qmir.fvds.ru ESMTP Exim 4.77 Thu, 15 Nov 2012 12:23:34 +0000
helo ikmb.ru
>>> ikmb.ru in helo_lookup_domains? no (end of list)
250 qmir.fvds.ru Hello ikmb.ru [95.108.130.94]
mail from:<qweqweqwe@yandex.ru>
250 OK
rcpt to:<dfgsdf@ikmb.ru>
>>> using ACL "acl_check_rcpt"
>>> processing "accept"
>>> check domains = +my_relay_for_domains
>>> ikmb.ru in "/usr/local/etc/exim/10.relay_domains"? yes (matched "ikmb.ru" in /usr/local/etc/exim/10.relay_domains)
>>> ikmb.ru in "+my_relay_for_domains"? yes (matched "+my_relay_for_domains")
>>> check set acl_c_spamscore = 0
>>> looking up host name for 95.108.130.94
>>> IP address lookup yielded forward12.mail.yandex.net
>>> gethostbyname looked up these IP addresses:
>>>   name=forward12.mail.yandex.net address=95.108.130.94
>>> checking addresses for forward12.mail.yandex.net
>>>   95.108.130.94 OK
>>> check logwrite = "Begin: ACL_c_spamscore = $acl_c_spamscore, Connected from host - $sender_host_name, Recive HELO/EHLO - $sender_helo_name"
>>>                = "Begin: ACL_c_spamscore = 0, Connected from host - forward12.mail.yandex.net, Recive HELO/EHLO - ikmb.ru"
LOG: "Begin: ACL_c_spamscore = 0, Connected from host - forward12.mail.yandex.net, Recive HELO/EHLO - ikmb.ru"
>>> accept: condition test succeeded
250 "Relay for ikmb.ru not permit. "

Re: EXIM + FreeBSD + ACL

Добавлено: 2012-11-15 17:24:22
werder31
Насколько я понимаю)))) то вы даете реджект всем кто в вашем списке :)

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

10.acl_check_rcpt:
       domains                 = !+my_relay_for_domains
Думаю лучше так:

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

 defer hosts    = !+whitelist_sender

Re: EXIM + FreeBSD + ACL

Добавлено: 2012-11-16 8:53:39
vdscout
werder31 писал(а):Насколько я понимаю)))) то вы даете реджект всем кто в вашем списке :)

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

10.acl_check_rcpt:
       domains                 = !+my_relay_for_domains
у меня в листинге нет отрицания (!). Почему вы решили что даю реджект?

Re: EXIM + FreeBSD + ACL

Добавлено: 2012-11-16 12:18:13
werder31
Попробуйте так:

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

     accept domains = +my_relay_for_domains
     set acl_c_spamscore = 0
     logwrite = "Begin: ACL_c_spamscore = $acl_c_spamscore"
     
     deny    message       = "Relay for $domain not permit."
В это случаэ Вы сначала разрешаете для своих от всех и запрещаете потом для всех

Re: EXIM + FreeBSD + ACL

Добавлено: 2012-11-18 19:55:34
dikens3
Человек сам изменил сообщение сервера строкой message = ... А теперь недоволен что там не 250 ОК.

Код 250 - это не отказ сервера, если что.

Так сделайте:

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

10.acl_check_rcpt:

    accept  domains                 = +my_relay_for_domains
        set acl_c_spamscore     = 0
        logwrite                = "Begin: ACL_c_spamscore = $acl_c_spamscore"

accept