exim 4.3
проблема: при прохождении юзером smtp авторизации он может отправлять почту с любых email адресов в этом домене, хотелось бы установить соответствие логина и адреса отправителя.. возможно ли это?.. конфиг здесь: http://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi?az=sh...
>exim 4.3
>проблема: при прохождении юзером smtp авторизации он может отправлять почту с любых
>email адресов в этом домене, хотелось бы установить соответствие логина и
>адреса отправителя.. возможно ли это?.. конфиг здесь: http://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi?az=sh...
А с алиасами потом проблем не будет?
Кстати, у тебя юзеры где хранятся?
>>хотелось бы установить соответствие логина и
>>адреса отправителя.. возможно ли это?.. конфиг здесь: http://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi?az=sh...
>А с алиасами потом проблем не будет?
да вроде не должно..
>Кстати, у тебя юзеры где хранятся?
в мускуле..
>>>хотелось бы установить соответствие логина и
>>>адреса отправителя.. возможно ли это?.. конфиг здесь: http://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi?az=sh...
>>А с алиасами потом проблем не будет?
>да вроде не должно..
>>Кстати, у тебя юзеры где хранятся?
>в мускуле..
Я пока этого не делал, но надо :-) Предположительно в router
dnslookup:
driver = dnslookup
domains = ! +local_domains
condition = ${lookup mysql{SELECT alias_idnr FROM aliases WHERE \
alias='${quote_mysql:$sender_address}' AND \
client_idnr in (select client_idnr from users \
WHERE user_id \
= '${quote_mysql:$sender_host_authenticated}'}{yes}{no}}
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_moreили что-то в этом роде в зависимости от мускульной базы. Жду ответа - сам заинтерисован.
>Я пока этого не делал, но надо :-) Предположительно в router
>dnslookup:
вроде получилось.. поправил router mysqluser следующим образом:condition = ${if and {{!eq {}{${lookup mysql{SELECT home FROM users \
WHERE id='${local_part}' AND mbox_host='${domain}' \
AND active='Y'}}}} \
{match {$sender_address}{$authenticated_id}} \
}{yes}{no}}>или что-то в этом роде в зависимости от мускульной базы. Жду ответа
>- сам заинтерисован.первоначально добавил в dnslookup router еще вот это:
condition = ${if match {$sender_address} \
{$authenticated_id} \
{yes}{no}}
но при дальнейшем рассмотрении отладочного лога понял, что оно не нужно, поскольку у меня в секции acl стоит require verify = sender
Спасибо за подсказку.. :)
>>Я пока этого не делал, но надо :-) Предположительно в router
>>dnslookup:
>вроде получилось.. поправил router mysqluser следующим образом:
>
>condition = ${if and {{!eq {}{${lookup mysql{SELECT home FROM users \
>
> WHERE id='${local_part}' AND mbox_host='${domain}' \
>
> AND active='Y'}}}} \
>
> {match {$sender_address}{$authenticated_id}} \
>
> }{yes}{no}}
>
>>или что-то в этом роде в зависимости от мускульной базы. Жду ответа
>>- сам заинтерисован.
>
>первоначально добавил в dnslookup router еще вот это:
>condition = ${if match {$sender_address} \
>
> {$authenticated_id} \
>
> {yes}{no}}
>но при дальнейшем рассмотрении отладочного лога понял, что оно не нужно, поскольку
>у меня в секции acl стоит require verify = sender
>Спасибо за подсказку.. :)
Извини, подсказал не подумав. Точную конфигурацию кину попозже, а пока для размышления:
acl_check_rcpt:
...
accept domains = *
autenticated = *
endpass
message = not match login and name of sender
verify = recipient
condition = ${if match{$sender_address}{$authenticated_id@my\\.host\\.nm}{yes}{no}}
Хромает у меня экзимовский синтаксис. Буду отлаживать. Удачи.
И еще: у тебя в открытом виде пароли в базе хранятся. Нехорошо это. Попробуй мускульные функции криптования при укладке, а при аутентификации в екзиме воспользуйся crypteq. У меня сделано так: server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup mysql{SELECT passwd FROM users WHERE userid = '${quote_mysql:$2}'}}}}}{1}{0}}" Это в плейтексте. Пока.
>И еще: у тебя в открытом виде пароли в базе хранятся. Нехорошо
>это. Попробуй мускульные функции криптования при укладке, а при аутентификации в
>екзиме воспользуйся crypteq. У меня сделано так: server_condition = "${if crypteq{$2}{${extract{1}{:}{${lookup
>mysql{SELECT passwd FROM users WHERE userid = '${quote_mysql:$2}'}}}}}{1}{0}}" Это в плейтексте.
>Пока.
спасибо, я думал этим заняться, даже ссылки здесь нужные нашел, но потом отвлекся.. сейчас займусь.. :)