Я пытаюсь создать небольшой сервер Postfix/Cyrus на моей рабочей станции Linux, чтобы действовать как прокси-сервер между моим почтовым клиентом (Thunderbird) и почтовым сервером моей компании, а также обрабатывать локальную системную электронную почту (вещи, отправленные crontabs для пример).
На сервере Cyrus я создал почтовый ящик, имитирующий адрес электронной почты моей компании, настроил псевдонимы в /etc/псевдонимы
отправлять локальные электронные письма, предназначенные для корень
или же почтмейстер
по этому адресу, и благодаря транспорт_карты
Директива, которая имеет приоритет над всем остальным, предписывает Postfix доставлять электронные письма, предназначенные для этого адреса электронной почты, непосредственно в сокет Cyrus lmtp. Эта часть работает отлично: вся локальная почта, предназначенная тем пользователям, которые присутствуют в /etc/псевдонимы
доставляется на мой локальный почтовый ящик Cyrus, в то время как вся почта для других доменов (или даже домена моей компании) отправляется на узел ретрансляции (фактический почтовый сервер моей компании) после того, как От:
заголовок переписан на адрес электронной почты моей компании благодаря smtp_generic_maps
(который действует только на исходящую почту, в отличие от sender_canonical_maps
или же реципиент_канонические_карты
). Это почти идеально.
Проблема, с которой я столкнулся, заключается в том, что Postfix принимает всю почту, предназначенную локальным пользователям, даже системным пользователям, и доставляет ее в файлы mbox в /var/спул/почта
, чего я не хочу.
я пытался установить local_recipient_maps
только $alias_maps
(исключая прокси:unix:passwd.byname
который содержится в значении по умолчанию), но это ничего не меняет.
Я также пытался установить почтовый ящик_транспорт
для доставки этих писем в сокет lmtp Сайруса, но тогда Постфикс отправляет Сайрусу все, что не указано в $alias_maps
, независимо от того, существует ли он в базе данных паролей Unix или нет (настройка mailbox_transport_maps = $alias_maps
не помогает).
С этими настройками почта несуществующим пользователям (или существующим учетным записям Unix, не $alias_maps
) оказывается отвергнутым Сайрусом (с 550-Почтовый ящик неизвестен
), но я бы хотел, чтобы Postfix отклонял эти электронные письма напрямую, избегая бесполезного (ИМХО) обращения к Сайрусу.
Если то, чего я пытаюсь достичь, действительно невозможно, я соглашусь на это.
Я также пытался установить местный транспорт
к сокету Cyrus lmtp, но это еще хуже: вся почта отправляется прямо в Cyrus, без каких-либо псевдонимов (поэтому вся локальная почта отклоняется, даже если локальный пользователь присутствует в $alias_maps
).
Я знаю, что могу игнорировать местный
полностью и обрабатывать всю почту с виртуальный
агент доставки (это то, что я обычно делаю, когда настраиваю настоящий почтовый сервер, использующий только виртуальные домены/почтовые ящики), но мне нравится очень простая конфигурация, которую я получил до сих пор (/etc/postfix/main.cf
в настоящее время содержит только 10 фактических строк или около того), и я нахожу очень удивительным, что местный
нельзя получить указание игнорировать базу данных паролей Unix и отвергать все, что на самом деле не указано в $alias_maps
(если я неправильно понял документацию, это то, что local_recipient_maps
это для).
Вот моя конфигурация:
/etc/postfix/main.cf
уровень_совместимости = 2
myhostname = <полное доменное имя моей рабочей станции в локальной сети>
inet_interfaces = только для обратной связи
mynetworks_style = хост
relayhost = <внутренний MX моей компании>
alias_maps = hash:/etc/aliases (для исключения nis:mail.aliases)
transport_maps = хеш:$config_directory/transport_maps
smtp_generic_maps = хэш:$config_directory/smtp_generic_maps
биф = нет
/etc/псевдонимы
почтмейстер: корень
root: <фактический адрес электронной почты моей компании>
/etc/postfix/transport_maps
<фактический адрес электронной почты моей компании> lmtp:unix:/run/cyrus/socket/lmtp
/etc/postfix/smtp_generic_maps
@<полное доменное имя моей рабочей станции в локальной сети> <фактический адрес электронной почты моей компании>
Как видите, очень просто.
Нет ли способа проинструктировать Postfix отклонять почту для системных пользователей, или, точнее, отклонять почту для пользователей, не указанных явно в $alias_maps
?