LINUX.ORG.RU
ФорумAdmin

exim: block local user.

 


0

1

Всем привет.

Всегда работал с postfix, но тут возникла необходимость в корректировке настроек exim, который я готовить не умею. Нужно заблокировать возможность отсылки почты локальному пользователю, который делает это через sendmail. Думал для этих целей использовать

condition = ${if match{$h_Received:}{ from XXXXXX }{yes}{no}},
но этот заголовок добавляет сам exim и мне не очевидно, на каком этапе делать проверку, во всяком случае тестовая конструкция
acl_check_data:
            warn
                condition = ${if match{$h_Received:}{ from XXXXX }{yes}{no}}
                add_header = X-text: userXXXXX
                log_message = message from userXXXXX
не дала результата. Скорее всего я также могу ошибаться в организации проверки по строке.

В общем, знатоки Exim, нужна ваша помощь.

★★★

Последнее исправление: Valmont (всего исправлений: 1)
Ответ на: комментарий от fbiagent

warn был выставлен для проверки того, что сообщения ловятся. А они не ловятся: хедеры не прописываются, в логах нет сообщения. То есть, либо ошибка в

 
 ${if match{$h_Received:}{ from XXXXX }{yes}{no}}
либо не на той стадии проверку делаю.

Valmont ★★★
() автор топика
Ответ на: комментарий от fbiagent

Спасибо за идею, но увы.

или используй спец директиву never_users =

Поменял

never_users = root

на

never_users = root : user

Перезагрузил exim - не работает, письма пропускаются. Думаю, придется дальше копать в сторону acl и фильтров

Valmont ★★★
() автор топика
Ответ на: комментарий от fbiagent

Анатолий, спасибо за помощь.

condition = ${lookup{$sender_ident}{user}{yes}{no}}

Ровно в таком виде в acl_check_not_smtp выходила ошибка:

'missing lookup type'
А в acl_check_data: фильтр, к сожалению, не ловил.

В итоге еще поэкспериментировал и вот такая конструкция оказалась рабочей:

acl_check_not_smtp:
        deny  condition    = ${if eq{$sender_ident}{xxxxx}{yes}{no}}
                log_message  = message from xxxxx

И я еще поменял deny на discard, чтобы не генерировались отлупы пользователям об ошибке.

Сейчас еще попробую добавить поиск в файле имен пользователей, чтобы раз и навсегда закрыть этот вопрос. Если получится :)

Valmont ★★★
() автор топика
Последнее исправление: Valmont (всего исправлений: 1)
Ответ на: комментарий от fbiagent

Итоговое рабочее решение, которое оказалось проще, чем первые варианты :)

acl_check_not_smtp:
        discard condition   = ${lookup{$sender_ident}lsearch{/etc/exim/denyusers}{yes}{no}}
                 log_message = message from $sender_ident banned via /etc/exim/denyusers

tags: Exim, sendmail, block, deny, blackhole local user.

Valmont ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.