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.comacl_check_rcpt: require message = relay not permitted (check smtp auth) domains = +local_domains : +relay_to_domains
Вопрос 1. Как заставить exim запрашивать аутентификацию если отправитель и получатель совпадают (локальные)? Вопрос 2. Как заставить exim запрашивать аутентификацию если отправитель и получатель локальные, но не совпадают?
|
- exim Принудительная аутентификация (сам себе, от себя самого..., Евгений, 14:56 , 07-Мрт-09 (1)
>[оверквотинг удален] >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, 22:52 , 07-Мрт-09 (2)
>1) auth_advertise_hosts = * > >2) добавить в acl_check_rcpt: > >accept authenticated = * > >3) настроить секцию аутентификаторов первых два пункта есть про третий пункт собственно и вопрос
- exim Принудительная аутентификация (сам себе, от себя самого..., бусик, 10:20 , 08-Мрт-09 (3)
>>1) auth_advertise_hosts = * >> >>2) добавить в acl_check_rcpt: >> >>accept authenticated = * >> >>3) настроить секцию аутентификаторов > >первых два пункта есть >про третий пункт собственно и вопрос В гугле смотрели??? миллионы тем с примерами и конфигами на все случаи жизни.
- exim Принудительная аутентификация (сам себе, от себя самого..., abask, 11:16 , 08-Мрт-09 (4)
>В гугле смотрели??? миллионы тем с примерами и конфигами на все случаи >жизни. Естественно смотрел, имею привычку сначала поиском пользоваться, а потом глупые вопросы задавать. Только с гуглом что-то не заладилось Может неправильно запросы формулировал...
- exim Принудительная аутентификация (сам себе, от себя самого..., bill, 20:10 , 08-Мрт-09 (5)
>>В гугле смотрели??? миллионы тем с примерами и конфигами на все случаи >>жизни. > >Естественно смотрел, имею привычку сначала поиском пользоваться, а потом глупые вопросы задавать. > > >Только с гуглом что-то не заладилось >Может неправильно запросы формулировал... http://exim.org.ua/pipermail/exim-users/2008-December/006710...
- exim Принудительная аутентификация (сам себе, от себя самого..., abask, 00:33 , 09-Мрт-09 (6)
- exim Принудительная аутентификация (сам себе, от себя самого..., bill, 10:34 , 09-Мрт-09 (7)
>[оверквотинг удален] > = 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, 00:34 , 10-Мрт-09 (8)
на один шаг продвинулся вперед
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 ....
т.е. в перечень доменов при сравнении попадает только домен получателя, а отправителя - нет (что-то подобное было тут https://www.opennet.ru/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, 00:58 , 10-Мрт-09 (9)
>копаю дальше нашел где собака порылась вот так не работает:
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 Принудительная аутентификация (сам себе, от себя самого..., Аноним, 18:54 , 04-Фев-16 (10)
Некропостинг, но может кому пригодится.Проблема у 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!
|