web-dev-qa-db-ja.com

Postfix / Dovecot-複数のドメインと複数のLinuxアカウント

ホストがドアを閉めることにしたため、VPSから移行するために新しいメールサーバーをセットアップしようとしています。古いサーバーはExim/Courier(この時点で約10年前)を実行していたので、Postfix/Dovecotの方がセットアップが簡単だという印象を受けました。しかし、私はそれほど運がありませんでした。

私がセットアップしようとしているもの:

  • Postfix
  • ダブコット
  • Maildir形式
  • 複数のドメイン
  • 複数のアカウント
  • ClamAV
  • SpamAssassin

私はAmavisを使用してClamAVとSpamAssassinを結び付けてきました。

postconf -n:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
home_mailbox = Maildir/
inet_interfaces = all
mailbox_command = /usr/lib/dovecot/deliver
mailbox_size_limit = 0
milter_default_action = accept
mydestination = localhost, /etc/postfix/domains
myhostname = example.org
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_client_restrictions = reject_unknown_client_hostname, permit_sasl_authenticated
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname
smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/postfix/.pem
smtpd_tls_key_file = /etc/postfix/.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes
virtual_alias_maps = hash:/etc/postfix/virtual

/ etc/postfix/domains:

lorem.com
example.org
website.net

/ etc/postfix/virtual:

[email protected]        userTwo
[email protected]             userTwo

[email protected]      userOne
[email protected]           userOne

[email protected]      userOne
[email protected]           userOne
[email protected]            userThree
[email protected]            userTwo

[email protected]から[email protected]にメールを送信する場合:

mail.log、mail.err:

Aug  3 20:04:55 example postfix/submission/smtpd[25424]: connect from my-hostname[68.xxx.xxx.xxx]
Aug  3 20:04:55 example postfix/submission/smtpd[25424]: 8D70441402: client=my-hostname[68.xxx.xxx.xxx], sasl_method=PLAIN, sasl_username=userOne
Aug  3 20:04:55 example postfix/cleanup[25429]: 8D70441402: message-id=<[email protected]>
Aug  3 20:04:55 example postfix/qmgr[25311]: 8D70441402: from=<[email protected]>, size=583, nrcpt=1 (queue active)
Aug  3 20:04:55 example postfix/submission/smtpd[25424]: disconnect from my-hostname[68.xxx.xxx.xxx]
Aug  3 20:04:56 example postfix/smtpd[25434]: connect from localhost[127.0.0.1]
Aug  3 20:04:56 example postfix/smtpd[25434]: 72CE941403: client=localhost[127.0.0.1]
Aug  3 20:04:56 example postfix/cleanup[25429]: 72CE941403: message-id=<[email protected]>
Aug  3 20:04:56 example postfix/qmgr[25311]: 72CE941403: from=<[email protected]>, size=991, nrcpt=1 (queue active)
Aug  3 20:04:56 example postfix/smtpd[25434]: disconnect from localhost[127.0.0.1]
Aug  3 20:04:56 example amavis[5148]: (05148-07) Passed CLEAN {RelayedInbound}, [68.xxx.xxx.xxx]:52874 [68.xxx.xxx.xxx] <[email protected]> -> <[email protected]>, Queue-ID: 8D70441402, Message-ID: <[email protected]>, mail_id: QciSwqBl84A4, Hits: 1.439, size: 583, queued_as: 72CE941403, 838 ms

Aug  3 20:04:56 example postfix/smtp[25430]: 8D70441402: to=<[email protected]>, orig_to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=1, delays=0.13/0.01/0.01/0.84, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 72CE941403)

Aug  3 20:04:56 example postfix/qmgr[25311]: 8D70441402: removed
Aug  3 20:04:56 example dovecot: lda(steve): msgid=<[email protected]>: saved mail to INBOX
Aug  3 20:04:56 example postfix/local[25377]: 72CE941403: to=<[email protected]>, relay=local, delay=0.12, delays=0.01/0/0/0.1, dsn=2.0.0, status=sent (delivered to command: /usr/lib/dovecot/deliver)
Aug  3 20:04:56 example postfix/qmgr[25311]: 72CE941403: removed

IPとホスト名を検閲しました。次に、中央のorig_toと書かれている行に注意してください。メールを受信すると、steve @ example.orgの[送信済み]ボックスにあります。どちらがおかしいですか? [email protected]から[email protected]へのSMTPは正常に機能します。

これに一致する別の質問が1つ見つかりました。

Postfix:virtual_alias_mapsは新しいドメインにもかかわらず1人のユーザーにすべてを配信します

残念ながら、私は答えを理解していません、そして私たちの設定が同一であるとは思いません。

私はそれがmydestinationと私の仮想マップの使用に関係していると考えています...しかし、これまでに行ったことがうまくいかない場合、宛先と仮想ドメインをどのように設定するかはよくわかりません。

私は非常に長い間、この一見簡単そうな質問への回答を探していましたが、試すためのソリューションが不足しています。 Googleでメールを実行したくないので、このVPSで実行したいのですが。

どんな助けでも大歓迎です。ありがとうございました。

3
Mookman288

私はこの問題を解決したと信じており、これがこの問題に遭遇した他の人々の助けとなることを期待しています。ここではあまり役に立たなかったことに少しがっかりしましたが、それを書き出すことが役に立ったのではないかと思います。とにかく:

main.cfでは、myoriginおよびmydestination変数をlocalhostに設定する必要があります。そう:

myorigin = localhost
mydestination = localhost

Mydestinationを使用してドメイン割り当てを処理する代わりに、仮想ドメインマッピングに切り替えると、仮想ユーザーは必要なメールを取得できます。

virtual_alias_domains = hash:/etc/postfix/domains

つまり、/etc/postfix/domainsファイルも適切にフォーマットする必要があります。

example.org    #
example.com    #

コメントは単にハッシュ形式を満たしているにすぎません。このファイルにもpostmapが必要です。

postmap /etc/postfix/domains

それはそれであるはずです。仮想ドメインを介したルックアップが実行された後、個々のアカウントはすべて適切なUNIXアドレスに電子メールをルーティングします。

ユーザーへの「拡張」が何であるか、または問題を抱えた他の個人が投稿したものはまだわかりませんが、この特定の問題には関係がないようです。

これが私のような誰かを助けることを願っています。

編集:/etc/aliasesのすべても削除します。

2
Mookman288