web-dev-qa-db-ja.com

alias_mapsとvirtual_alias_mapsについて混乱

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

1)/ etc/aliases file:

root: [email protected]

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

2)/ etc/postfix/virtual

root     [email protected]

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

これで私はさらに混乱しました-

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

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

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

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

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

編集:これは、メールがmail rootコマンドを使用して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=<[email protected]>

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

Nov 14 16:39:27 Debian postfix/error[4496]: 0F12643432: to=<[email protected]>, 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=<[email protected]>

Nov 14 16:44:58 Debian postfix/qmgr[4544]: ADD9A43436: from=<[email protected]>, size=453, nrcpt=1 (queue active)

Nov 14 16:45:00 Debian postfix/smtp[4551]: ADD9A43436: to=<[email protected]>, 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
24
Neel
  1. /etc/aliasesは主にローカル配信のためにあります。たとえば、cronからrootへのメールなどです。ローカルエイリアスを別にしておくのはいいことですvirtual_alias_mapsは、SQL DBなどでも使用できます。

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

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

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

2
NickW