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

Исходное сообщение
"Postfix не проверять почту на определённого пользователя."

Отправлено stend , 26-Ноя-08 04:09 
Добрый день!
Коллеги, хочу сделать список исключений, содержащий адреса локальных пользователей для которых входящая почта не должна никоим образом проверяться. Я сделал так, но не работает если не прав поправьте:
Содержимое main.cf
# Manual restriction class
smtpd_restriction_classes = permit_rcpto
permit_rcpto = permit
# Police rule for user out WORLD(SMTP connections from) #
smtpd_client_restrictions =
            check_client_access hash:/etc/postfix/policy/rbl_exceptions, hash:/etc/postfix/policy/access, hash:/etc/postfix/policy/rcpto_exeptions
            check_recipient_access hash:/etc/postfix/policy/recipient_access, hash:/etc/postfix/policy/rcpto_exeptions
            check_sender_access hash:/etc/postfix/policy/sender_checks, hash:/etc/postfix/policy/rcpto_exeptions
            permit_sasl_authenticated
            permit_mynetworks
            reject_rbl_client bl.spamcop.net
            reject_rbl_client sbl.spamhaus.org
            reject_rhsbl_client rhsbl.ahbl.org
            reject_rhsbl_client bl.spamcop.net
            reject_rhsbl_client sbl.spamhaus.org
            check_client_access regexp:/etc/postfix/policy/client_checks

Содержимое файла rcpto_exeptions

username@domain.com                     permit_rcpto
username1@domain.com                    permit_rcpto
username2@domain.com                    permit_rcpto


Содержание

Сообщения в этом обсуждении
"Postfix не проверять почту на определённого пользователя."
Отправлено Rey , 26-Ноя-08 08:58 
в вашем конфиге смысла smtpd_restriction_classes не вижу
на момент smtpd_client_restrictions емейлы еще не доступны.

в общем случае порядок проверок: smtpd_client_restrictions, smtpd_helo_restrictions, smtpd_sender_restrictions, smtpd_recipient_restrictions, smtpd_data_restrictions

проверка правил идет сверху вниз по цепочке,
если в правиле срабатывает условие, то дальнейшие правила не обрабатываются.

check_client_access - проверка адреса клиента
check_sender_access - проверка емейла отправителя
check_recipient_access - проверка емейла получателя

проще всего перенести ВСЕ правила в smtpd_recipient_restrictions
на этом этапе возможна проверка адреса клиента, его приветствия, емейлов отправителя и получателя. поэтому тупо ставим правило первым :) что гарантирует нам прием всей почты на эти адреса.
smtpd_recipient_restrictions =
   check_recipient_access hash:/etc/postfix/policy/rcpto_exeptions

cat rcpto_exeptions
username@domain.com    permit
username1@domain.com   permit
username2@domain.com   permit


"Postfix не проверять почту на определённого пользователя."
Отправлено stend , 26-Ноя-08 09:18 
>[оверквотинг удален]
>на этом этапе возможна проверка адреса клиента, его приветствия, емейлов отправителя и
>получателя. поэтому тупо ставим правило первым :) что гарантирует нам прием
>всей почты на эти адреса.
>smtpd_recipient_restrictions =
>   check_recipient_access hash:/etc/postfix/policy/rcpto_exeptions
>
>cat rcpto_exeptions
>username@domain.com    permit
>username1@domain.com   permit
>username2@domain.com   permit

Спасибо! Обязательно проверю и отпишусь.


"Postfix не проверять почту на определённого пользователя."
Отправлено stend , 26-Ноя-08 09:33 
Коллега, совсем из головы вылетело, но ведь, если перенести такую проверку в smtpd_recipient_restrictions
первой может сработать цепочка reject_rbl_client bl.spamcop.net
            reject_rbl_client sbl.spamhaus.org
            reject_rhsbl_client rhsbl.ahbl.org
            reject_rhsbl_client bl.spamcop.net
            reject_rhsbl_client sbl.spamhaus.org

В smtpd_client_restrictions, а также
цепочка
reject_invalid_hostname
            reject_non_fqdn_hostname
            reject_unknown_hostname

В smtpd_helo_restrictions, т.о. сообщения всё равно отвергнутся ещё до обработки списка исключений в цепочке smtpd_recipient_restrictions
Если не прав, поправьте.


"Postfix не проверять почту на определённого пользователя."
Отправлено Rey , 26-Ноя-08 09:58 
хм...правила обрабатываются по очереди :) а правила мы перенесли в smtpd_recipient_restrictions. и наше правило стоит первым :)
цепочка больше определяет видимость того, что мы можем использовать для проверки

т.е. возьмем сессию со стороны клиента, получаем
0. сам момент подключения       // smtpd_client_restrictions, доступен адрес клиента
1. helo home.net                // smtpd_helo_restrictions, доступен адрес, приветствие
2. mail from: vasya@home.net    // smtpd_sender_restrictions, доступен адрес, приветствие, емейл отправителя
3. rcpt to: petya@work.net      // smtpd_recipient_restrictions, доступен адрес, приветствие, емейл отправителя, емейл получателя
4. data                         // smtpd_data_restrictions, доступен адрес, приветствие, емейл отправителя, емейл получателя, можем фильтровать содержимое

например:
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_recipient_restrictions =
   check_recipient_access hash:/etc/postfix/policy/rcpto_exeptions,
   reject_rbl_client bl.spamcop.net

т.е. клиент пройдет этапы 0-3 и только после этого начнется проверка.
проверится адрес получателя, если правило не сработает, то будет проверяться адрес клиента и т.д.

удобство smtpd_recipient_restrictions в том, что в случае отлупа в логе мы получим конкретную запись, "с такого-то адреса с такого-то емейла на такой емейл был такой-то реждект"