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

Смущает насчет alias_maps и virtual_alias_maps

Я уже перечитал документы об этом, а также о других сообщениях здесь, и мне это все еще очень непонятно. Я тестировал разные вещи, чтобы понять разницу между alias_maps и virtual_alias_maps и я не вижу использования этих двух отдельных настроек в postfix. Это то, что я нашел до сих пор (Примечание - я использую postfix на том же сервере, что и мой веб-сервер, в качестве нулевого клиента только для отправки электронных писем):

1) Файл / etc / aliases:

root: me@somedomain.com

Когда я добавляю вышеупомянутое к alias_maps, Я заметил, что некоторые службы, такие как fail2ban, могут выбирать это и отправлять корневые электронные письма на упомянутые псевдонимы. Однако я также заметил, что некоторые другие службы (например, mail команда) не соблюдает это и пытается отправить электронное письмо напрямую на root@mydomain.com, которого не существует (я думаю, что это постфикс myorigin настройка, добавляющая @ mydomain.com). Чтобы исправить это, я добавил virtual_alias_maps

2) / и т.д. / постфикс / виртуальный

root     me@someotherdomain.com

Когда вышеупомянутое добавлено, все службы используют этот виртуальный псевдоним электронной почты. Я также заметил, что как только я добавляю вышеуказанное, даже fail2ban начинает игнорировать мои начальные настройки в /etc/aliases/ файл и начинает отслеживать адрес электронной почты, указанный в виртуальном файле.

Вот это еще больше смутило меня -

  1. Зачем нам нужен /etc/aliases/ когда электронная почта внутри карты виртуальных псевдонимов, кажется, переопределяет ее?

  2. Какова цель отображения этих двух разных псевдонимов и когда мы решаем, когда что использовать?

  3. Почему fail2ban (настроенный на отправку электронной почты на root@localhost) сначала следуйте адресу электронной почты, указанному в alias_maps (/ etc / aliases /) и позже решает проигнорировать это однажды virtual_alias_maps был добавлен?

  4. Почему не все службы читают псевдонимы электронной почты, упомянутые в / etc / aliases, и работают только тогда, когда псевдонимы электронной почты добавлены в виртуальную карту псевдонимов?

Я провел несколько часов со вчерашнего дня и все еще не уверен. Может ли кто-нибудь помочь мне прояснить мое замешательство?

РЕДАКТИРОВАТЬ: Это почтовый журнал, когда электронное письмо отправляется root с использованием mail root команда. Электронная почта псевдонимов для root упоминается в / etc / aliases /. Но почта не работает, пока я не перенесу это письмо с корневыми псевдонимами из aliases_maps к virtual_aliases_maps

Записывать, когда корневой псевдоним электронной почты упоминается в /etc/aliases/:

Nov 14 16:39:27 Debian postfix/pickup[4339]: 0F12643432: uid=0 from=<root>

Nov 14 16:39:27 Debian postfix/cleanup[4495]: 0F12643432: message-id=<20141114110927.0F12643432@Debian.domainname.com>

Nov 14 16:39:27 Debian postfix/qmgr[4338]: 0F12643432: from=<root@domainname.com>, size=517, nrcpt=1 (queue active)

Nov 14 16:39:27 Debian postfix/error[4496]: 0F12643432: to=<root@domainname.com>, orig_to=<root>, relay=none, delay=0.04, delays=0.03/0/0/0.01, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to domainname.com[128.199.147.136]:25: Connection refused)

Это журнал после того, как псевдонимы электронной почты для root перемещены из /etc/aliases/ к /etc/postfix/virtual где доставка электронной почты успешна после изменения:

Nov 14 16:44:58 Debian postfix/pickup[4545]: ADD9A43436: uid=0 from=<root>

Nov 14 16:44:58 Debian postfix/cleanup[4563]: ADD9A43436: message-id=<20141114111458.ADD9A43436@Debian.domainname.com>

Nov 14 16:44:58 Debian postfix/qmgr[4544]: ADD9A43436: from=<root@domainname.com>, size=453, nrcpt=1 (queue active)

Nov 14 16:45:00 Debian postfix/smtp[4551]: ADD9A43436: to=<admin@somesite.com>, orig_to=<root>, relay=somesite.com[108.160.157.120]:25, delay=1.9, delays=0.03/0/0.97/0.88, dsn=2.0.0, status=sent (250 OK id=1XpEqC-0002ry-9s)

Nov 14 16:45:00 Debian postfix/qmgr[4544]: ADD9A43436: removed

Некоторый фон

Postfix унаследовал некоторые функции от старого sendmail, такие как milter и псевдонимы. Файл /etc/aliases это часть aliases наследование и осуществляется alias_maps. С другой стороны, postfix имеет virtual_maps/virtual_alias_maps для обработки псевдонимов электронной почты. Так в чем же между ними разница?

Параметр alias_maps

  • Используется только для местная (8) доставка

  • В соответствии с класс адреса в постфиксе, электронная почта будет доставлена ​​по местному (8) если доменные имена получателя указаны в mydestination

  • В поисковый ввод были только локальные части из полного адреса электронной почты (например, myuser из myuser@example.com). Он отбрасывает доменные части получателя.

  • В результат поиска может содержать одно или несколько из следующего:

    • адрес электронной почты: электронное письмо будет отправлено на адрес электронной почты
    • /имя файла: адрес электронной почты будет добавлен к /имя файла
    • | команда: почта отправлена ​​на команда
    • : включить: / файл / имя: включить псевдоним из /имя файла

Параметр virtual_alias_maps

  • Использован виртуальная (5) доставка

  • Всегда вызывается в первый раз перед любыми другими классами адресов. Неважно, был ли домен получателя указан в mydestination, virtual_mailbox_domains или в других местах. Он переопределит адрес / псевдоним, определенный в других местах.

  • В поисковый ввод имеет какой-то формат

    • пользователь @ домен: это будет соответствовать пользователь @ домен буквально

    • пользователь: это будет соответствовать пользователь@site, когда site равно $myorigin, когда сайт указан в $mydestination, или когда он указан в $inet_interfaces или $proxy_interfaces. Эта функциональность частично совпадает с функциональностью локальной базы данных псевдонимов (5).

    • @домен: он будет соответствовать любому электронному письму, предназначенному для domain независимо от местных частей

  • В результат поиска должно быть

    • Действующий электронный адрес
    • пользователь без домена. Postfix добавит $myorigin если append_at_myorigin устанавливать да

Зачем нам нужен / etc / aliases, если электронная почта внутри карты виртуальных псевдонимов, кажется, переопределяет его?

Как видно выше, alias_maps(/ etc / aliases) имеет некоторые дополнительные функции (помимо пересылки), такие как передача команды по конвейеру. Это контрастирует с virtual_alias_maps это просто пересылка электронной почты.

Какова цель отображения этих двух разных псевдонимов и когда мы решаем, когда что использовать?

В alias_maps недостатки в том, что вы можете различить, имеет ли первоначальный получатель форму root@example.com или root@example.net. Оба будут сопоставлены с корневой записью в alias_maps. В других руках вы можете определить другой адрес пересылки с помощью virtual_alias_maps.

Почему fail2ban (который настроен на отправку электронной почты на root @ localhost) сначала следовал адресу электронной почты, указанному в alias_maps (/ etc / aliases /), а затем решил проигнорировать его после добавления virtual_alias_maps?

Перед добавлением virtual_alias_maps: root @ localhost был псевдонимом alias_mapsпотому что localhost был указан в mydestination.

После определения virtual_alias_maps: Вход root (в virtual_alias_maps) не имеет частей домена, а localhost был указан в mydestination, поэтому он будет соответствовать root me@example.com.

Почему не все службы читают псевдонимы электронной почты, упомянутые в / etc / aliases, и работают только тогда, когда псевдонимы электронной почты добавлены в виртуальную карту псевдонимов?

Команда mail root отправит письмо root. Из-за отсутствия частей домена, постфиксная тривиальная перезапись добавит myorigin в части домена. Итак, письмо будет отправлено на корень @ myorigin.

Перед добавлением virtual_alias_maps: К сожалению, myorigin не указан в mydestination, поэтому он не будет использовать псевдонимы alias_maps.

После добавления virtual_alias_maps: Вход root (в virtual_alias_maps) не имеет частей домена и myorigin (очевидно) такой же, какmyorigin, поэтому он будет соответствовать root me@example.com.

  1. /etc/aliases существует в первую очередь для локальной доставки, например, для почты в root из cron и т. д., неплохо держать ваши локальные псевдонимы отдельно, virtual_alias_maps также может использоваться с базами данных SQL и т. д.

  2. virtual_alias_maps предназначен для случаев, когда у вас есть виртуальные пользователи (и виртуальные домены), которые часто не отображаются на пользователей системы, но если у вас нет виртуальных доменов и очень мало пользователей, такая функциональность может не понадобиться.

  3. fail2ban не заботится, он просто отправляет письмо в MTA.

  4. Вам нужно уточнить, какие службы, как и куда они отправляют почту?