URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 84381
[ Назад ]

Исходное сообщение
"exim Принудительная аутентификация (сам себе, от себя самого..."

Отправлено abask , 07-Мрт-09 01:13 
(exim, сам себе, от себя самого, local to local, отправитель и получатель совпадают)

Некоторые "умные" спамеры шлют письма указывая адрес отправителя и адрес получателя одинаковыми. (Сам себе)
Напр. для сервера обслуживающего почту домена example.com:

mail from: test@example.com
rcpt to: test@example.com

При стандартных настройках exim аутентификация в этом случае не запрашивается, т.к. example.com указан в local_domains

domainlist local_domains = LOCAL_DOMAINS : example.com

acl_check_rcpt:
require message = relay not permitted (check smtp auth)
     domains = +local_domains : +relay_to_domains

Вопрос 1. Как заставить exim запрашивать аутентификацию если отправитель и получатель совпадают (локальные)?

Вопрос 2. Как заставить exim запрашивать аутентификацию если отправитель и получатель локальные, но не совпадают?


Содержание

Сообщения в этом обсуждении
"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено Евгений , 07-Мрт-09 14:56 
>[оверквотинг удален]
>acl_check_rcpt:
>require message = relay not permitted (check smtp auth)
>     domains = +local_domains : +relay_to_domains
>

>
>Вопрос 1. Как заставить exim запрашивать аутентификацию если отправитель и получатель совпадают
>(локальные)?
>
>Вопрос 2. Как заставить exim запрашивать аутентификацию если отправитель и получатель локальные,
>но не совпадают?

1) auth_advertise_hosts = *

2) добавить в acl_check_rcpt:

accept authenticated = *

3) настроить секцию аутентификаторов


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено abask , 07-Мрт-09 22:52 
>1) auth_advertise_hosts = *
>
>2) добавить в acl_check_rcpt:
>
>accept authenticated = *
>
>3) настроить секцию аутентификаторов

первых два пункта есть
про третий пункт собственно и вопрос


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено бусик , 08-Мрт-09 10:20 
>>1) auth_advertise_hosts = *
>>
>>2) добавить в acl_check_rcpt:
>>
>>accept authenticated = *
>>
>>3) настроить секцию аутентификаторов
>
>первых два пункта есть
>про третий пункт собственно и вопрос

В гугле смотрели??? миллионы тем с примерами и конфигами на все случаи жизни.


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено abask , 08-Мрт-09 11:16 
>В гугле смотрели??? миллионы тем с примерами и конфигами на все случаи
>жизни.

Естественно смотрел, имею привычку сначала поиском пользоваться, а потом глупые вопросы задавать.

Только с гуглом что-то не заладилось
Может неправильно запросы формулировал...


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено bill , 08-Мрт-09 20:10 
>>В гугле смотрели??? миллионы тем с примерами и конфигами на все случаи
>>жизни.
>
>Естественно смотрел, имею привычку сначала поиском пользоваться, а потом глупые вопросы задавать.
>
>
>Только с гуглом что-то не заладилось
>Может неправильно запросы формулировал...

http://exim.org.ua/pipermail/exim-users/2008-December/006710...


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено abask , 09-Мрт-09 00:33 
>http://exim.org.ua/pipermail/exim-users/2008-December/006710...

2 bill
спасибо что делаете за меня мою работу,

но в указанной конференции так и не нашел однозначного ответа на свои вопросы.
разве что, завтра попробую помедитировать насчет этого http://exim.org.ua/pipermail/exim-users/2008-December/006719...

        # ---- Deny mail from external addressess from local/virtual domains
        # ---- Skip authenticated users
        deny
                message         = Authentication needed to send mail from my domain from external IP!
                !authenticated  = *
                !hosts          = +int_hosts
                sender_domains  = +virtual_domains : +local_domains
        domains        = +virtual_domains : +local_domains


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено bill , 09-Мрт-09 10:34 
>[оверквотинг удален]
>  = Authentication needed to send mail from my domain
>from external IP!
>            
>    !authenticated  = *
>            
>    !hosts      
>   = +int_hosts
>            
>    sender_domains  = +virtual_domains : +local_domains
>  domains  = +virtual_domains : +local_domains

Можно на время тестирования использовать warn вместо deny. И очень удобная фишка у exim  для проверки конфигурации ACL :  exim -bh


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено abask , 10-Мрт-09 00:34 
на один шаг продвинулся вперед
  accept  authenticated = *


  deny    !authenticated = *
            sender_domains = +local_domains : +relay_to_domains
            message = Warning! Authentication required!

но это работает только если домены отправителя и получателя совпадают
у меня exim обслуживает несколько доменов (test.com и example.com)

#exim -bh 1.2.3.4
mail from: user@test.com
rcpt to: user@example.com
....
>>> processing "deny"
>>> check !authenticated = *
>>> check sender_domains = +local_domains : +relay_to_domains

>>> test.com in "localhost : example.com"? no (end of list)
>>> test.com in ""? no (end of list)
>>> test.com in "+local_domains : +relay_to_domains"? no (end of list)
>>> deny: condition test failed

....

т.е. в перечень доменов при сравнении попадает только домен получателя, а отправителя - нет (что-то подобное было тут http://www.opennet.me/openforum/vsluhforumID1/55070.html)

если же это условие переместить из acl_check_rcpt: в acl_check_mail:, то список +relay_to_domains пустой

>>> processing "deny"
>>> check !authenticated = *
>>> check sender_domains = +local_domains : +relay_to_domains
>>> test.com in "localhost : "? no (end of list)
>>> test.com in ""? no (end of list)
>>> test.com in "+local_domains : +relay_to_domains"? no (end of list)
>>> deny: condition test failed

копаю дальше


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено abask , 10-Мрт-09 00:58 
>копаю дальше

нашел где собака порылась
вот так не работает:

LOCAL_DOMAINS = localhost
VIRTUAL_DOMAINS = ${lookup mysql{SELECT domainname FROM domains \
                                    WHERE domainname='${quote_mysql:$domain}' AND type='LOCAL'}}

domainlist relay_to_domains = ${lookup mysql{SELECT domainname FROM domains \
                                    WHERE domainname='${quote_mysql:$domain}' AND type='RELAY'}}

domainlist local_domains = LOCAL_DOMAINS : VIRTUAL_DOMAINS

а вот так работает:

LOCAL_DOMAINS = localhost : test.com : example.com
VIRTUAL_DOMAINS = ${lookup mysql{SELECT domainname FROM domains \
                                    WHERE domainname='${quote_mysql:$domain}' AND type='LOCAL'}}

domainlist relay_to_domains = ${lookup mysql{SELECT domainname FROM domains \
                                    WHERE domainname='${quote_mysql:$domain}' AND type='RELAY'}}

domainlist local_domains = LOCAL_DOMAINS : VIRTUAL_DOMAINS


т.о. когда явно задаю все локальные домены - все ОК
когда беру из базы mysql - exim достает только домен получателя....

"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено Аноним , 04-Фев-16 18:54 
Некропостинг, но может кому пригодится.

Проблема у abask была из-за условия where, выбирающим из базы только домен на которое пришло письмо. Работающее решение выглядит так:


domainlist active_domains = ${lookup mysql{ \
        SELECT GROUP_CONCAT(`domain` SEPARATOR ' : ') \
        FROM  `domain` \
        WHERE `domain`!='ALL' \
        AND   `active`='1' \
}}


accept authenticated  = *

deny   !authenticated = *
       sender_domains = +active_domains
       message        = Authentication required!


"exim Принудительная аутентификация (сам себе, от себя самого..."
Отправлено Аноним , 21-Мрт-16 11:30 
вы забыли ;

> domainlist active_domains = ${lookup mysql{ \
>         SELECT GROUP_CONCAT(`domain` SEPARATOR '
> : ') \
>         FROM  `domain` \
>         WHERE `domain`!='ALL' \
>         AND   `active`='1'
> \
> }}