Всем привет на serverfault,
Я запускаю почтовый сервер Debian Wheezy с постфиксом и несколькими доменами на нем.
Для одного домена мне нужно несколько учетных записей, чтобы нельзя было получать и отправлять электронную почту во внешний мир, только на тот же домен. Остальные учетные записи и домены остаются в норме.
Поискав в Интернете, я обнаружил, что могу сделать это с помощью классов ограничения постфиксов, поэтому я нашел руководство в документации по постфиксам: http://www.postfix.org/RESTRICTION_CLASS_README.html
Следуя документации по постфиксу, я не могу применить свое ограничение, это дает мне ошибку неиспользуемого параметра при перезапуске постфикса, ошибка следующая:
/ usr / sbin / postconf: предупреждение: /etc/postfix/main.cf: неиспользуемый параметр: local_only = check_recipient_access хеш: / etc / postfix / local_domains, отклонить
Вот часть моего main.cf, где расположены классы ограничений:
smtpd_client_restrictions =
allow_mynetworks,
check_client_access хеш: / etc / postfix / custom_check_client_access,
allow_sasl_authenticated,
reject_sender_login_mismatch,
reject_unknown_client,
reject_unauth_pipelining,
reject_rbl_client sbl.spamhaus.org,
smtpd_recipient_restrictions =
check_sender_access хеш: / etc / postfix / limited_senders,
allow_mynetworks,
allow_sasl_authenticated,
reject_unauth_destination,
reject_invalid_hostname,
reject_unauth_pipelining,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
check_recipient_access хеш: / etc / postfix / protected_destinations,
check_policy_service inet: 127.0.0.1: 10023,
разрешать
smtpd_restriction_classes = local_only
local_only = check_recipient_access хеш: / etc / postfix / local_domains, отклонить
smtpd_restriction_classes = insiders_only
insiders_only = check_sender_access хэш: / etc / postfix / local_domains, отклонить
Вот мой файл / etc / postfix / protected_destinations:
restrict01@mydomain.com insiders_only
Вот мой файл / etc / postfix / limited_senders:
restrict01@mydomain.com local_only
Вот мой файл / etc / postfix / local_domains:
mydomain.com ОК
Я не могу понять, что я сделал не так! Я не видел нигде в Интернете, как объединить два класса ограничений вместе, поэтому синтаксис smtpd_restriction_classes может быть неправильным. Еще я подозреваю, что ошибся порядок smtpd_recipient_restrictions, я не могу понять, куда поместить check_sender_access и check_recipient_access.
Если бы вы, ребята, могли помочь мне в настройке этого класса ограничений, я был бы благодарен.
Спасибо, Джованни
При определении нового класса ограничений вы в основном говорите Postfix о новом общем ограничении, которое можно использовать как встроенные проверки, например. "allow_mynetworks".
Для этого вам потребуется указать все классы ограничений за один раз, т.е.
smtpd_restriction_classes = local_only, insiders_only
insiders_only = ...
local_only = ...
Это должно отключить предупреждение postconf о неиспользуемом параметре.
Что касается того, где поставить ограничения: по умолчанию для параметра smtpd_delay_reject установлено значение «yes», что означает, что даже smtpd_ (client | sender) _restrictions будет оцениваться только после этап "rctp to: <...>". По этой причине давным-давно советуют просто снять все ограничения в smtpd_recipient_restrictions. В вашем случае, когда отправитель restrict01 @ ... должен иметь возможность отправлять сообщения только внутренним адресатам, вы, вероятно, можете использовать что-то вроде этого в качестве хорошей отправной точки:
smtpd_recipient_restrictions =
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_unlisted_sender
reject_unlisted_recipient
reject_unknown_sender_domain
reject_unknown_recipient_domain
check_sender_access hash:/etc/postfix/restricted_senders
permit_mynetworks
allow_sasl_authenticated
reject_unauth_destination
check_policy_service inet:127.0.0.1:10023
reject_rbl_client zen.spamhaus.org
permit_auth_destination
reject
smtpd_restriction_classes = local_only
local_only = check_recipient_access hash:/etc/postfix/local_domains, reject
Также следует отметить, что (вероятно) плохая идея возвращать «ОК» из карты доступа до того, как вы проверите учетные данные клиента. Следовательно, файл «/ etc / postfix / local_domains» должен содержать строку вида
example.com DUNNO
Это заставит ограниченного отправителя аутентифицироваться с помощью SASL или находиться в $ mynetworks. Как видите, вы можете обойтись одним классом ограничений и избавиться от smtpd_ (отправитель | клиент) _restrictions.