Настройка классов ограничений в postfix для блокировки получения и отправки почты на внешние домены.
Привет всем на сервере,
Я запускаю почтовый сервер Debian Wheezy с постфиксом и несколькими доменами.
Для одного домена мне нужно, чтобы некоторые учетные записи не могли получать и отправлять электронную почту во внешний мир, только в один и тот же домен. Остальные аккаунты и домены остаются нормальными.
Выполняя поиск в Интернете, я обнаружил, что могу делать это с помощью классов ограничения postfix, поэтому я нашел руководство в документации postfix: http://www.postfix.org/RESTRICTION_CLASS_README.html
Следуя документации postfix, я не могу применить свое ограничение, он выдает ошибку неиспользованного параметра при перезапуске postfix, ошибка следующая:
/ usr / sbin / postconf: предупреждение: /etc/postfix/main.cf: неиспользуемый параметр: local_only=check_recipient_access хэш:/etc/postfix/local_domains, отклонить
Вот некоторая часть моего main.cf, где расположены классы ограничений:
smtpd_client_restrictions =
permit_mynetworks,
хеш check_client_access: / etc / postfix / custom_check_client_access,
permit_sasl_authenticated,
reject_sender_login_mismatch,
reject_unknown_client,
reject_unauth_pipelining,
reject_rbl_client sbl.spamhaus.org,
smtpd_recipient_restrictions =
check_sender_access hash: / etc / postfix / limited_senders,
permit_mynetworks,
permit_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_destination,
check_policy_service inet: 127.0.0.1: 10023,
разрешать
smtpd_restriction_classes = local_only
local_only = check_recipient_access hash:/etc/postfix/local_domains, отклонить
smtpd_restriction_classes = insiders_only
insiders_only = check_sender_access hash:/etc/postfix/local_domains, отклонить
Вот мой файл / etc / postfix / protected_destination:
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.
Если бы вы, ребята, могли бы помочь мне в создании этого класса ограничения, я был бы благодарен.
Спасибо джованни
1 ответ
При определении нового класса ограничений вы в основном рассказываете 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_ (отправитель | клиент).