alias_mapsとvirtual_alias_mapsについて混乱しています


22

私はすでにこれに関するドキュメントと他の投稿をここで読み直しましたが、これはまだ非常に不明瞭です。私は違いを理解するために、様々なものをテストしているalias_mapsvirtual_alias_maps、私は、postfixの中にこれらの2つの個別の設定の使用を参照してくださいしないでください。これは私がこれまでに見つけたものです(注-メールを送信するためだけに、nullクライアントとして私のWebサーバーと同じサーバーでpostfixを使用しています)

1)/ etc / aliasesファイル:

root: me@somedomain.com

上記をに追加すると、alias_mapsfail2banなどの一部のサービスがこれを選択できることに気付き、前述のエイリアスメールアドレスにルートメールを送信します。ただし、他の一部のサービス(mailコマンドなど)がこれを尊重せず、存在しないroot@mydomain.comに直接メールを送信しようとすることにも気付きました(myorigin@ mydomain.comを追加するpostfix 設定だと思います) 。これを修正するために追加しましたvirtual_alias_maps

2)/ etc / postfix / virtual

root     me@someotherdomain.com

上記を追加すると、すべてのサービスがこの仮想エイリアス電子メールを使用します。また、上記を追加すると、fail2banでさえ/etc/aliases/ファイルの初期設定を無視し始め、仮想ファイルで指定された電子メールアドレスを追跡し始めることに気付きました。

今、これは私をさらに混乱させています-

  1. /etc/aliases/仮想エイリアスマップ内の電子メールがそれをオーバーライドするように見えるのに、なぜ必要なのですか?

  2. これらの2つの個別のエイリアスマッピングを使用する目的は何ですか?いつ何を使用するかを決定するのはいつですか

  3. fail2ban(にメールを送信するように設定されていますroot@localhost)が最初にalias_maps(/ etc / aliases /)で指定されたメールアドレスをフォローし、後でvirtual_alias_maps追加されたものを無視することにしたのはなぜですか?

  4. すべてのサービスが/ etc / aliasesに記載されている電子メールエイリアスを読み取らず、仮想エイリアスマップに電子メールエイリアスが追加された場合にのみ機能するのはなぜですか?

私は昨日から数時間を過ごしましたが、まだよくわかりません。誰かが私の混乱を解決するのを手伝ってくれますか?

編集: これは、mail rootコマンドを使用して電子メールがルートに送信されたときのメールログです。ルートのエイリアス電子メールは/ etc / aliases /に記載されています。私がこのルートのエイリアスのメールを移動するまでしかし、メールは動作しませんaliases_mapsvirtual_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)

これは、ルートの電子メールエイリアスが変更後の電子メール配信が成功/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

@masegaloehメールログで私の投稿を更新しました
Neel

回答:


35

いくつかの背景

Postfixは、milterやエイリアスなど、古いsendmailからいくつかの機能を継承しました。ファイル/etc/aliasesaliases継承の一部であり、によって実装されalias_mapsます。一方、postfixには、電子メールのエイリアスを処理するためのvirtual_maps/ virtual_alias_mapsがあります。それで、それらの違いは何ですか?

パラメータ alias_maps

  • local(8)配信にのみ使用されます

  • よると接尾におけるアドレスクラス、ローカル(8)により、電子メールの意志配信受信者のドメイン名がリストされている場合にmydestination

  • 検索入力は、完全な電子メールアドレスからのみのローカル部分(例えばmyuserのmyuser@example.comから)でした。受信者のドメイン部分を破棄します。

  • 検索結果の缶は、次のうちの1つ以上が含まれています。

    • メールアドレス:メールアドレスに転送されます
    • / file / name:電子メールは/ file / nameに追加されます
    • |コマンド:メールにパイプコマンド
    • :include:/ file / name/ file / nameからエイリアスを含める

パラメータ virtual_alias_maps

  • virtual(5)配信で使用されます

  • 他のアドレスクラスの前に常に最初に呼び出されます。これは、受信者のドメインが中に記載されていたかどうかを気にしないmydestinationvirtual_mailbox_domainsまたは他の場所。他の場所で定義されたアドレス/エイリアスを上書きします。

  • 検索入力は、いくつかの形式があります

    • user @ domain:文字通りuser @ domainと一致します

    • ユーザー:それは一致するユーザーのサイトがに等しいとき@siteを$myoriginサイトがにリストアップされている場合、$mydestinationまたはそれが中にリストアップされている場合$inet_interfaces$proxy_interfacesこの機能は、ローカルaliases(5)データベースの機能と重複しています。

    • @domaindomainローカル部分に関係なく、目的の電子メールと一致します

  • 検索結果がでなければなりません

    • 有効な電子メールアドレス
    • ドメインのないユーザー。Postfixが付加されます$myorigin場合はappend_at_myorigin、セットはい

仮想エイリアスマップ内の電子メールがそれをオーバーライドしているように見えるのに、なぜ/ etc / aliasesが必要なのですか?

上記を見るとわかるように、alias_maps(/ etc / aliases)には、コマンドへのパイピングなどの追加機能(転送以外)があります。それはvirtual_alias_mapsただの転送メールとは対照的です。

これらの2つの個別のエイリアスマッピングを使用する目的は何ですか?いつ何を使用するかを決定するのはいつですか

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が追加される前alias_mapslocalhostがにリストされていたため、root @ localhostはによってエイリアスされましたmydestination

virtual_alias_mapsの定義後:エントリroot(virtual_alias_maps内)にはドメイン部分がなく、localhostがリストされているmydestinationため、一致しroot me@example.comます。

すべてのサービスが/ etc / aliasesに記載されている電子メールエイリアスを読み取らず、仮想エイリアスマップに電子メールエイリアスが追加された場合にのみ機能するのはなぜですか?

コマンドmail rootは電子メールをルートに送信します。ドメイン部分がないため、postfix trivial-rewriteはドメイン部分にmyoriginを追加します。したがって、メールはroot @ myoriginに送信されます。

virtual_alias_mapsが追加される前:残念ながら、はにmyoriginリストされmydestinationていないため、ではエイリアスされませんalias_maps

virtual_alias_mapsが追加された後:エントリroot(virtual_alias_maps内)にはドメイン部分とmyorigin(明らかに)と同じでmyoriginはないため、一致しroot me@example.comます。


1
文中alias_maps欠点は差別化できることです。単語canは、おそらくできないことを意味していました。そうでなければ、私はそれを理解することはできません。
ダニエルベーマー

2
  1. /etc/aliases主にローカル配信用にあります。たとえば、cronからルートへのメールなどです。ローカルエイリアスを分けておくと便利ですvirtual_alias_maps。SQLDBでも使用できます。

  2. virtual_alias_maps 多くの場合、システムユーザーにマッピングされない仮想ユーザー(および仮想ドメイン)がある場合に使用しますが、仮想ドメインがなく、ユーザーが非常に少ない場合、そのような機能は必要ない場合があります。

  3. fail2banは気にしません。MTAにメールを送信するだけです。

  4. もっと具体的にする必要があります。どのサービス、どのように、どこでメールを送信しますか?


@NickWに感謝します:(1)No:4の場合、mailコマンドはこれを行うサービスの1つです。/ etc / aliasesが主にローカルユーザーへのローカル配信用である場合、shouldnt mail rootコマンドは実際にこのカテゴリに分類されるべきですか ローカル配信の場合、このサービスが/ etc / aliasesの情報を考慮しているのはなぜですか?(2)私のシナリオのためにこれらを考慮すると、電子メールアドレスは、両方に言及した別名のユーザーを持つことをお勧め続いている/etc/aliasesだけでなく、としてvirtual_alias_maps、彼らはすべてのために働くそう?
ニール

1
1. OK、mailコマンドは/etc/aliasesデフォルトで、本当にばかげた質問を使用するはずnewaliasesです。ファイルを更新した後に実行しましたか?2.それはやり過ぎです。ローカルマシンからメールを受信する場合は、適切なメールアドレスを使用するようにスクリプトを構成する価値があります。
NickW

こんにちは、@ NickWはいnewaliases、変更後にエイリアスを再構築しました。エイリアスを使用しない理由について考えることができる唯一のことは@$domain_name、ユーザーの後に追加され、virtual_alias_mapsそれらの電子メールをリダイレクトするために必要なpostfix設定が原因である可能性があります。私は、postfixのドキュメントでこれを読んで、なぜ多分thatsのmailルートへのコマンドが作業していないaliasespostfix.org/STANDARD_CONFIGURATION_README.html#some_localとにかく、私はこの優れたニックを理解する手助けのためにありがとうございました。私は本当に感謝しています。:)
ニール

助けてくれてうれしい:)
NickW
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.