Плутати про alias_maps та virtual_alias_maps


22

Я вже перечитав документи з цього приводу, як і інші публікації тут, і це все ще дуже незрозуміло для мене. Я перевіряв різні речі, щоб зрозуміти різницю між ними alias_mapsі virtual_alias_mapsне бачу використання цих 2-х окремих параметрів у постфіксі. Це те, що я знайшов поки що (Примітка. Я використовую постфікс на тому ж сервері, що і мій веб-сервер, як нульовий клієнт, щоб надсилати електронні листи) :

1) / etc / псевдоніми:

root: me@somedomain.com

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

2) / etc / postfix / virtual

root     me@someotherdomain.com

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

Тепер це ще більше збентежило мене -

  1. Навіщо нам це потрібно, /etc/aliases/коли повідомлення електронної пошти всередині віртуальних псевдонімів переглядає її?

  2. Яка мета створення цих двох окремих псевдонімів, і коли ми вирішуємо, коли використовувати?

  3. Чому fail2ban (який налаштовано на електронну пошту root@localhost) спочатку слідкував за електронною адресою, вказаною в alias_maps(/ etc / aliases /), а пізніше вирішує ігнорувати те, що virtual_alias_mapsбуло додано?

  4. Чому всі служби не читають псевдоніми електронної пошти, згадані в / etc / псевдонімах, і вони працюють лише тоді, коли псевдоніми електронної пошти додані у віртуальну мапу псевдоніму?

Я провів кілька годин з вчорашнього дня і досі не впевнений. Чи може хтось допомогти мені очистити мою плутанину?

РЕДАКТУВАННЯ: Це журнал пошти, коли електронна пошта надсилається кореням за допомогою 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

I also noticed that some other services (like mail command) does not respect this-> покажіть, будь ласка, запис
поштового журналу,

@masegaloeh Оновив моє повідомлення з журналом пошти
Neel

Відповіді:


35

Якесь тло

Postfix успадкував деякі функції від старих sendmail, наприклад, milter та псевдоніми. Файл /etc/aliasesє частиною aliasesспадкування та реалізований компанією alias_maps. З іншого боку, постфікс має virtual_maps/ virtual_alias_mapsдля обробки псевдоніму електронної пошти. То яка різниця між ними?

Параметр alias_maps

  • Використовується лише для місцевої (8) доставки

  • Відповідно до класу адреси в Postfix , електронна пошта буде доставлена ​​місцевим (8), якщо доменні імена одержувачів вказані вmydestination

  • Вхід пошук був тільки локальні частини від повної електронної пошти (Адресна наприклад MyUser від myuser@example.com). Він відкидає доменні частини одержувача.

  • Результат пошуку може містити одне або більше з наступного:

    • електронна адреса : електронна пошта буде переадресована на електронну адресу
    • / file / name : електронний лист буде доданий до / file / name
    • | команда : пошта, передана в команду
    • : include: / file / name : включити псевдонім з / file / name

Параметр virtual_alias_maps

  • Використовується за допомогою віртуальної (5) доставки

  • Завжди використовуйте перший раз перед будь-якими іншими класами адрес. Не важливо, чи був домен одержувача в списку mydestination, virtual_mailbox_domainsчи в інших місцях. Він замінить адресу / псевдонім, визначений в інших місцях.

  • Вхідний пошук мають деякий формат

    • user @ domain : він буде відповідати буквально користувачеві @ домену

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

    • @domain : він відповідатиме будь-якій пошті, призначеній для domainнезалежної місцевої частини

  • Результат пошуку повинен бути

    • Дійсна електронна пошта
    • користувач без домену. Postfix буде додано, $myoriginякщо append_at_myoriginвстановлено так

Чому нам потрібні / etc / псевдоніми, коли повідомлення електронної пошти всередині віртуальних псевдонімів, здається, перекриває її?

Як ви бачите вище, alias_maps(/ etc / псевдоніми) має деякі додаткові функції (крім переадресації), наприклад, трубопроводи до команд. Це контрастує з тим, 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 / псевдонімах, і вони працюють лише тоді, коли псевдоніми електронної пошти додані у віртуальну мапу псевдоніму?

Команда mail rootнадішле електронний лист кореневі. Оскільки бракує доменних частин, postfix trivial-rewrite додасть міоригін до частин домену. Отже, пошта буде надіслана до root @ myorigin .

Перш ніж додано virtual_alias_maps : На жаль, myoriginвін не вказаний у mydestination, тому він не буде псевдонімами alias_maps.

Після додавання virtual_alias_maps : У записі root(у virtual_alias_maps) немає частин домену, а міоригін (очевидно) такий самий, як myorigin, тож він буде відповідати root me@example.com.


1
У реченні У alias_mapsнедоліки можна диференціювати ... слово може , ймовірно , мав в виду , щоб бути не може . Інакше я не можу з цим ніякого сенсу.
Даніель Бьомер

2
  1. /etc/aliasesє в першу чергу для локальної доставки, наприклад, пошта для кореня з cron і т. д., приємно тримати ваші локальні псевдоніми окремо, virtual_alias_mapsтакож можна використовувати з SQL БД тощо.

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

  3. fail2ban не хвилює, він просто надсилає електронну пошту до MTA.

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


Дякую @NickW за декілька речей: (1) Для №: 4 команда пошти - одна із служб, яка робить це. Я маю на увазі, якщо / etc / псевдоніми в основному призначені для локальної доставки місцевим користувачам, чи не mail rootповинна команда фактично підпадати під цю категорію? Чому isint ця послуга враховує інформацію в / etc / псевдонімах, коли вона є локальною доставкою? (2) Враховуючи це для мого сценарію, чи є тоді хорошою практикою використання електронних адрес псевдонімів користувачів, зазначених у обох /etc/aliases, а також virtual_alias_mapsвони працюють на все?
Ніл

1
1. Гаразд, поштова команда повинна використовувати /etc/aliasesза замовчуванням справді нерозумне запитання, ви запустили newaliasesпісля оновлення файлу, правда? 2. Я б сказав, що це надмірно, якщо люди отримуватимуть пошту з локальної машини, варто налаштувати сценарії, щоб використовувати їх належну адресу електронної пошти, таким чином він буде переведений через поштовий індекс та доставлений до потрібного пункту призначення.
NickW

привіт @NickW Так, я переробив псевдоніми, використовуючи newaliasesпісля зміни. Єдине, що я можу подумати, чому його не використовують псевдоніми, можливо, це пов’язано з параметром Postfix, який додається @$domain_nameпісля користувача, а значить, virtual_alias_mapsі потрібен для перенаправлення цих листів. Я читав це в документах Postfix і, можливо, ось чому mailкоманда root не працює aliases: postfix.org/STANDARD_CONFIGURATION_README.html#some_local Як би то не було, дякую тобі за допомогу мені зрозуміти цей кращий Нік. Я дуже ціную це .. :)
Ніл

Радий, що допомогли :)
NickW
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.