私はこれに関するドキュメントとここの他の投稿をすでに読んでいますが、これはまだ非常に不明瞭です。私はalias_maps
とvirtual_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/
ファイルの私の初期設定が無視され、仮想ファイルで指定された電子メールアドレスを追跡し始めることにも気付きました。
これで私はさらに混乱しました-
バーチャルエイリアスマップ内のメールがそれをオーバーライドしているように見えるのに、なぜ/etc/aliases/
が必要なのですか?
これら2つの個別のエイリアスマッピングを使用する目的は何ですか。また、いつ何を使用するかを決定するのはいつですか。
Fail2ban(root@localhost
に電子メールを送信するように設定されている)が最初にalias_maps
(/ etc/aliases /)で指定された電子メールアドレスをたどり、後でvirtual_alias_maps
が追加された後で無視することにしたのはなぜですか?
すべてのサービスが/ 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
/etc/aliases
は主にローカル配信のためにあります。たとえば、cronからrootへのメールなどです。ローカルエイリアスを別にしておくのはいいことですvirtual_alias_maps
は、SQL DBなどでも使用できます。
virtual_alias_maps
は、仮想ユーザー(および仮想ドメイン)があり、多くの場合システムユーザーにマップされない場合に使用しますが、仮想ドメインがなく、ユーザーが非常に少ない場合、この種の機能は必要ない場合があります。
fail2banは気にせず、MTAにメールを送信するだけです。
より具体的に、どのサービスをどのように、どこでメールを送信する必要がありますか?