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

Исходное сообщение
"sendmail и ограничение пересылки через транзитный сервер"

Отправлено cleva , 18-Авг-06 11:20 
Добрый день коллеги

Есть транзитный сервер на sendmail, занимается пересылкой почты по разным направлениям во внутренней сетке, своих юзверей не имеет, только транзит почты по MX и mailertable.
И тут поступило задание, чтобы он мог фильтровать почту, а именно следующее:

чтобы
1. user@test1.domain.ru мог получать письма только из *domain.ru,
2. а пользователь user2@test2.domain.ru мог получать письма только из test1.domain.ru и test2.domain.ru

решение через FEATURE(access_db, `hash -o -T<TMPF> /etc/mail/access')dnl
FEATURE(blacklist_recipients)dnl не помогают (To: , From:)
нужен какой то хак в виде LOCAL_RULESETS
полностью готовых решений не нашел, а с теми, которые нашел, голова не справляется исправить :-)
есть конечно выход - поставить какой либо другой продвинутый почтовик (postfix, exim), но хотелось бы решить эту задачу на sendmail в силу некоторых причин.


Содержание

Сообщения в этом обсуждении
"sendmail и ограничение пересылки через транзитный сервер"
Отправлено Medlar , 18-Авг-06 12:58 
>>Есть транзитный сервер на sendmail, занимается пересылкой почты по разным направлениям во >внутренней сетке, своих юзверей не имеет, только транзит почты по MX
>и mailertable.
>И тут поступило задание, чтобы он мог фильтровать почту, а именно следующее:
>чтобы
>1. user@test1.domain.ru мог получать письма только из *domain.ru,
>2. а пользователь user2@test2.domain.ru мог получать письма только из test1.domain.ru и test2.domain.ru

LOCAL_CONFIG
LOCAL_RULESETS
Scheck_rcpt
R$*  [TAB]          $: $&f $| $1

R$* $| $*  [TAB]           $: $2 $| $>Parse0 $>3 $1
R$* $| $*  [TAB]           $: $2 $| $>Parse0 $>3 $1

R<$+@domain.ru.> $| <user@test1.domain.ru.> [TAB]   $@ OK
R$* $| <user@test1.domain.ru.> [TAB]     $#error $: 553 Sorry, you can not send letter to this user.

R<$+@test1.domain.ru.> $| <user2@test2.domain.ru.> [TAB]   $@ OK
R<$+@test2.domain.ru.> $| <user2@test2.domain.ru.> [TAB]   $@ OK
R$* $| <user2@test2.domain.ru.> [TAB]     $#error $: 553 Sorry, you can not send letter to this user.

R$*   [TAB]          $@OK


"sendmail и ограничение пересылки через транзитный сервер"
Отправлено cleva , 18-Авг-06 18:27 
Не помогает :-(

"sendmail и ограничение пересылки через транзитный сервер"
Отправлено Medlar , 22-Авг-06 13:07 
Не может быть
Добавь вывод в syslog покажи результат

"sendmail и ограничение пересылки через транзитный сервер"
Отправлено cleva , 23-Авг-06 10:41 
>Не может быть
>Добавь вывод в syslog покажи результат

Все таки нашел путь решения
http://mta.org.ua/sendmail-cf-8.12/hack/

cfhead.m4
check_compat.m4
is_outgoing.m4
precheck_envelope.m4

Вот нужные и добавленные файлы
В check_compat поправил немного строки от стандартного файла, убрал лишние проверки

Информацию взял отсюда
http://forum.sysadmins.ru/viewtopic.php?p=6774557&sid=bae724...