0

Ограничение авторизации в Exim

От коллеги по цеху поступила задачка написать хитрое правило для эксима, которое разрешает авторизацию только для пользователей находящихся внутри корпоративной сети, но как обычно с одним НО — нужно разрешить авторизацию для мобильных сотрудников бегающих в «полях». От VPN коллега отказаля, мотивировав тем, что у мобильных сотрудников разношерстные девайсы вплоть до нокий с симбианом.

Поковырявшись в документации, родилось такое правило:

deny hosts = !+local_networks
!condition = ${lookup{$authenticated_id}lsearch{/etc/exim4/remote.users}{yes}{no}}
message = You are not permitted to authenticate from this address
authenticated = *

В начале конфига должна быть описанна переменная содержащая корпоративные сети:

hostlist local_networks = 192.168.1.0/24 : 192.168.88.0/24

Пример файла(/etc/exim4/remote.users) содержащего исключения — логины юзеров которым разрешено отправлять письма за пределами корпоративного сегмента:

user@mail1.net

manager@mail2.com

Очень важный момент: если у Вас логин без доменной части, то и в файле с исключениями нужно вносить логины без домена!

Олсо, для тех кто спросит:  а почему не использовать acl_smtp_auth — ACL для AUTH ?

При использовании acl_smtp_auth нет возможности проверить наличие авторизовавшегося логина в файле с исключениями т.к. авторизация еще не произошла. Поэтому проверка исключения для логина уже проходит после факта авторизации в acl_smtp_rcpt по переменой $authenticated_id и писку в /etc/exim4/remote.users .

freeman

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *