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

Правильно ли я понял конфиг exim4 (require/accept)

Добавлено: 2016-09-06 20:21:43
kavabanga

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

# Insist that any other recipient address that we accept is either in one of
# our local domains, or is in a domain for which we explicitly allow
# relaying. Any other domain is rejected as being unacceptable for relaying.
    require
        accept
            authenticated = *
        message = relay not permitted
        domains = +local_domains : +relay_to_domains
Правильно ли я понял, что в случае, если пользователь авторизован, то данную секцию проверка пройдет успешно и перейдет к следующей.
А если не авторизован, то проверка вернет deny и сообщение "relay not permitted" ?

Правильно ли я понял конфиг exim4 (require/accept)

Добавлено: 2016-09-07 0:28:08
xM
undefined писал(а):     require
        accept
Это вообще какая-то бессмыслица.
Должно быть либо require набор условий, выполнение которых передаст управление следующему правилу, либо выдаст deny, или accept набор условий, выполнение которых либо выдаст accept, либо передаст управление следующему правилу.
То есть две эти команды действуют совершенно иначе.
В accept есть модификатор endpass, который заставляет работать условия до него по логике accept, а после как deny.

Правильно ли я понял конфиг exim4 (require/accept)

Добавлено: 2016-09-07 3:47:36
kavabanga
@xM
попытка №2, тогда получается, что нужно переписать вот так:

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

# Insist that any other recipient address that we accept is either in one of
# our local domains, or is in a domain for which we explicitly allow
# relaying. Any other domain is rejected as being unacceptable for relaying.
    require 
        authenticated = *            
        message = relay not permitted
        domains = +local_domains : +relay_to_domains
в случае аутентифицированного юзера - передаст управление другому блоку
в случае неаутентифицированного юзера - кинет ошибку с сообщением "relay not permitted"

так?

Правильно ли я понял конфиг exim4 (require/accept)

Добавлено: 2016-09-07 11:34:52
xM
undefined писал(а): так?
Yep!

Правильно ли я понял конфиг exim4 (require/accept)

Добавлено: 2016-09-08 4:44:46
kavabanga
Я так написал, но наткнулся на следующую проблему.
Теперь не могу принимать письма с других серверов(yandex)

Что я сделал не так?

Правильно ли я понял конфиг exim4 (require/accept)

Добавлено: 2016-09-08 18:03:13
xM
undefined писал(а): Что я сделал не так?
Говоря в общем, написали неправильную конфигурацию.
Требовать аутентификации у внешних серверов, по-меньшей мере странно.

Правильно ли я понял конфиг exim4 (require/accept)

Добавлено: 2016-09-08 22:10:07
kavabanga
Что-то совсем просветление не наступает.

В acl_check_rcpt:

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

#сначала идет:
#принимаем всё от авторизованных
accept
    authenticated = *     
    
 # принимаем почту для локальных и доверенных хостов
 accept
     domains = +local_domains : +relay_to_domains
     verify = recipient
     
require     
        message = relay not permitted
        domains = +local_domains : +relay_to_domains  
        
 ...
 прочие проверки             
Теперь он на входящие и исходящие пишет в логах relay not permitted.

WTF?

Правильно ли я понял конфиг exim4 (require/accept)

Добавлено: 2016-09-08 23:49:54
xM
Просветление должно наступить после того, как вы последовательно пройдётесь по логике правил в этом ACL и поймёте, что каждое из них делает и, главное, что порядок имеет значение.
Вообще вышеприведённые правила какие-то мало осмысленные.
В первом вы принимаете для локальных доменов и, зачем-то, тех, для которых вы выступаете релеем при одновременной проверке существования получателя, которую последние, очевидно, при такой форме verify пройти никак не могут.
Во втором, вообще какой-то бред - требуете наличия в адресе получателя тех же локальных и релеев.
"Где логика? Где разум?" (с) Вовочка