Назад | Перейти на главную страницу

Как запретить Postfix принимать почту на root@hostname.localdomain

Как я могу запретить Postfix принимать почту local-users @ my-FQDN из внешнего мира?

$ hostname -f
hostname.example.com

Postfix принимает почту для любого локального пользователя по моему FQDN. Итак, мы будем использовать root@hostname.example.com в качестве примера локального пользователя я хочу прекратить получать почту из внешнего мира.

У меня довольно простая установка Postfix / Dovecot / SASL / LDA, но позвольте мне поделиться некоторыми деталями.

Я пробовал реверсировать пользователей в /etc/aliases и Postfix virtual_alias_maps.cf, но не повезло. Я бегал newaliases и почтовая карта после их обновления.

#/etc/aliases:
#root: user@example.com

#/etc/postfix/virtual_alias_maps.cf:
root user@example.com

Думаю, у меня осталось ЧЕТЫРЕ * (обновленных) варианта ...

  1. В postfix / main.cf поиграйте с mydestination. Я почти уверен, что мне нужно сохранить здесь свое полное доменное имя, поэтому не думаю, что его удаление - хороший вариант. РЕДАКТИРОВАТЬ: Да, хотя удаление вашего FQDN из мое предназначение отключает внешний мир от отправки почты локальным пользователям, это неправильный способ отключить его, потому что это приводит к другим вещам.
  2. В postfix / main.cf есть настройка для smtpd_recipient_restrictions отключить это? Я не могу найти ни одного в документы.
  3. Надеюсь, что это прочитает кто-нибудь, знающий правильный путь.

Вот соответствующая часть мой Postfix main.cf:

myhostname = hostname.example.com
mydomain = example.com
mydestination = $myhostname, localhost.$mydomain, localhost

smtpd_recipient_restrictions =
    reject_unknown_recipient_domain,
    reject_non_fqdn_recipient,
    reject_unauth_destination,
    permit_mynetworks,
    permit

Вот соответствующая часть мой Postfix master.cf:

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_recipient_restrictions=
     reject_unknown_recipient_domain,
     reject_non_fqdn_recipient,
     permit_sasl_authenticated,
     reject

P.S. Вот HowTo, из которого я взял большую часть своей настройки: VirtualUserFlatFilesPostfix

Просто удалите $ myhostname из mydestination и перезапустите postfix

Вы упоминаете smtp_recipient_restrictions, вы действительно пытались добавить строку check_recipient_access hash:/etc/postfix/recipient_access?

Поместите это как первую строку перед reject_unknown_recipient_domain, затем в /etc/postfix/recipient_access добавьте строку:

root@hostname.example.com ОТКАЗАТЬ

(не забудьте postmap /etc/postfix/recipient_access)

Кстати, адрес администратора почты всегда должен быть доступен, но я никогда не видел RFC, в котором говорилось бы, что root должен быть доступен, хотя я не читал все RFC, относящиеся к SMTP.