Настройка классов ограничений в 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_ (отправитель | клиент).

Другие вопросы по тегам