есть exim на нем 2 домена (напр. local и notlocal) и есть 2 провайдера (напр. eth0 x.x.x.x и y.y.y.y).
Почта ходит все замечательно через нужные интерфейся, но нужно разграничить жестко, чтобы local сидел на x.x.x.x адресе а notlocal сидел на y.y.y.y адресе! пока если стукнутся по 25 отвечает со всех адресов
Сейчас вот так напр.
telnet y.y.y.y 25
rcpt to: admin@local
OK
А должно вот такtelnet y.y.y.y 25
rcpt to: admin@local
access denied
и при том чтобы
telnet x.x.x.x 25
rcpt to: admin@local
OK
Как сделать подскажите ??
Если это очень нужно делать, то можно в acl использовать переменную $interface_address
>Если это очень нужно делать, то можно в acl использовать переменную $interface_address
>где я ошибся ?
condition = ${if and { eq{$interface_address}{lookup{$interface_address}lsearch{/etc/exim4/mail_ips_out}}}\
{ eq {$sender_address_domain}lookup{$sender_address_domain}lsearch{/etc/exim4/mail_ips_out}}}
Почему $sender_address_domain ? Или я Вас неправильно понял.
Я понял так, что есть два домена domain1 domain2. Есть два интерфейса 1.2.3.4 и 5.6.7.8
Каждый интерфейс обслуживает свой домен. Так?
Тогда
acl_check_rcpt:
deny !domains = domain1
condition = ${if eq {$interface_address}{1.2.3.4}}
message = Unknown user
log_message Interface $interface_address not accept mail for $recipients
condition = ${if eq {$rcpt_count}{1}{yes}{no}}
deny !domains = domain2
condition = ${if eq {$interface_address}{5.6.7.8}}
message = Unknown user
log_message Interface $interface_address not accept mail for $recipients
condition = ${if eq {$rcpt_count}{1}}Я не проверял, и это как то нестандартно. Если в письме два получателя для domain1 и domain2 и Вы не проверяете $rcpt_count письмо будет отвергнуто.
Не проще ли ограничиться только MX маршрутизацией?
rcpt_count проверять необязательно :).
>[оверквотинг удален]
>deny !domains = domain2
> condition = ${if eq {$interface_address}{5.6.7.8}}
> message = Unknown user
> log_message Interface $interface_address not accept mail for
>$recipients
> condition = ${if eq {$rcpt_count}{1}}
>
>Я не проверял, и это как то нестандартно. Если в письме два
>получателя для domain1 и domain2 и Вы не проверяете $rcpt_count письмо
>будет отвергнуто.$recipients доступно только после data
спасибо!!!
а с dovecot тоже самое как можно сделать ??
Подыми два exim (один для Local другой nonlocal)
естест. для каждого свой конфиг
в них главное
local_interfaces = Local или nonlocal
>[оверквотинг удален]
>
>telnet y.y.y.y 25
>rcpt to: admin@local
>access denied
>и при том чтобы
>telnet x.x.x.x 25
>rcpt to: admin@local
>OK
>
>Как сделать подскажите ??