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

Исходное сообщение
"как в exim можно проверить входящий интерфейс?"

Отправлено dimarem , 26-Мрт-10 14:25 
есть 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

Как сделать подскажите ??


Содержание

Сообщения в этом обсуждении
"как в exim можно проверить входящий интерфейс?"
Отправлено tux2002 , 26-Мрт-10 14:31 
Если это очень нужно делать, то можно в acl использовать переменную $interface_address


"как в exim можно проверить входящий интерфейс?"
Отправлено dimarem , 26-Мрт-10 16:04 
>Если это очень нужно делать, то можно в 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}}}


"как в exim можно проверить входящий интерфейс?"
Отправлено tux2002 , 26-Мрт-10 17:12 
Почему $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 письмо будет отвергнуто.


"как в exim можно проверить входящий интерфейс?"
Отправлено tux2002 , 26-Мрт-10 17:15 
Не проще ли ограничиться только MX маршрутизацией?


"как в exim можно проверить входящий интерфейс?"
Отправлено tux2002 , 26-Мрт-10 17:20 
rcpt_count проверять необязательно :).


"как в exim можно проверить входящий интерфейс?"
Отправлено dimarem , 26-Мрт-10 18:08 
>[оверквотинг удален]
>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
спасибо!!!


"как в exim можно проверить входящий интерфейс?"
Отправлено dimarem , 26-Мрт-10 20:47 
а с dovecot тоже самое как можно сделать ??



"как в exim можно проверить входящий интерфейс?"
Отправлено Bosh , 26-Мрт-10 19:19 
Подыми два 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
>
>Как сделать подскажите ??