パソコンおやじの掲示板
[記事リスト] [新着記事] [ワード検索] [過去ログ] [管理用]

タイトル どこかを参考にしたのでしょうか?
投稿日: 2012/07/18(Wed) 19:47
投稿者おやじ

本件は、Postfixに関する問題であり、これが片付いてもdovecotで問題がでる可能性が残ります。
インラインで気が付いたことを示します。
なお、下記を参照すると良いと思います。

http://www.postfix-jp.info/trans-2.3/jhtml/VIRTUAL_README.html#virtual_mailbox

> 現在、CentOS 5.7 で postfix-2.2.3 と dovecot-1.0.7 を使ってメールサーバを構築しようとしています。
>
> やりたいことですが、
> (1) 現在、動いているドメイン(hogehoge.comとします)のサブドメイン(newmail.hogehoge.com とします)でメールサーバを動かします。
> (2) メールユーザはサーバにログインさせません。つまり、/etc/passwd ファイルに登録しません。
> (3) メールユーザの認証はドメイン付きでさせます。つまり、Outlook Express 等において、sample01@hogehoge.com の受信メールサーバのユーザ名の欄は sample01@hogehoge.com とします。
> (4) メールボックス形式でメールスプールを構成します。
> (5) 認証を dovecot 認証とします。パスワードは PLAIN テキストにしています。
>
> これを実現するために設定を行っていますがどうやってもエラーになります。以下、/var/log/maillog ですが、
> ---- ここから ----
> Jul 17 17:15:08 newmail postfix/smtpd[5687]: connect from unknown[***.***.***.***]
> Jul 17 17:15:08 newmail postfix/smtpd[5687]: NOQUEUE: reject: RCPT from unknown[***.***.***.***]: 550 5.1.1 <sample01@newmail.hogehoge.com>: Recipient address rejected: User unknown in local recipient table; from=<********@********.**.jp> to=<sample01@newmail.hogehoge.com> proto=ESMTP helo=<***.********.**.jp>
> Jul 17 17:15:09 newmail postfix/smtpd[5687]: disconnect from unknown[***.***.***.***]
> ---- ここまで ----
> という具合です。
>
> 設定関係ですが、
>
> shell> postconf -n
> alias_database = hash:/etc/aliases
> alias_maps = hash:/etc/aliases
> broken_sasl_auth_clients = yes
> command_directory = /usr/sbin
> config_directory = /etc/postfix
> daemon_directory = /usr/libexec/postfix
> debug_peer_level = 2
> delay_warning_time = 1h
> html_directory = no
> inet_interfaces = all
> mail_owner = postfix
> mailq_path = /usr/bin/mailq.postfix
> manpage_directory = /usr/share/man
> message_size_limit = 102400000
> mydestination = $myhostname, localhost.$mydomain, localhost, hogehoge.com

上記マニュアルにいろいろ書かれていますが、virtual_mailbox_domainsとvirtual_alias_mapsとmydestinationはダブリ禁止です。
従って、おやじもやっていますが、mydestinationは下記のように = の右側を記述しないように記述してください。コメントアウトは駄目です。デフォルト値が設定されてエラーがでます。

mydestination =

> myhostname = newmail.hogehoge.com

因みに、 myhostname(newmail.hogehoge.com)のみバーチャルとするなら、mydestinationから除き、virtual_mailbox_domains = $myhostname のみとすればいいのでは?

> mydomain = hogehoge.com
> newaliases_path = /usr/bin/newaliases.postfix
> queue_directory = /var/spool/postfix
> readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES
> sample_directory = /usr/share/doc/postfix-2.3.3/samples
> sendmail_path = /usr/sbin/sendmail.postfix
> setgid_group = postdrop
> smtpd_banner = $myhostname ESMTP unknown
> smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_local_domain = $myhostname
> unknown_local_recipient_reject_code = 550
> virtual_alias_maps = hash:/etc/postfix/virtual
> virtual_gid_maps = static:5000
> virtual_mailbox_base = /var/spool/mail/vhosts
> virtual_mailbox_domains = $myhostname, localhost.$mydomain $mydomain, hogehoge.com

カンマ区切りで書けていないですし、$mydomainとhogehoge.comはダブリです。

virtual_mailbox_domains = $myhostname, localhost.$mydomain, $mydomain

あと、virtual_mailbox_domainss宛てのメール配送の指定として下記を追加。(デフォルトなのでなくても可)

virtual_transport = virtual

> virtual_mailbox_maps = hash:/etc/postfix/vmailbox
> virtual_minimum_uid = 100
> virtual_uid_maps = static:5000

(snip)

> shell> cat /etc/postfix/vmailbox
> sample01@newmail.hogehoge.com hogehoge.com/sample01/
> sample02@newmail.hogehoge.com hogehoge.com/sample02/

mailbox形式は停電などで全て飛んでしまう危険があるので、Maildir形式のほうがよいと思いますが、どうしてもmailbox形式とするなら、最後のスラッシュを削除しないとだめです。
最後がスラッシュで終わっているとMaildir形式扱いになります。言い換えると、バーチャルの場合はここの書き方でメールボックス形式が決まるので両形式の混在ができます。

> shell> cat /etc/passwd | grep mails
> mails:x:5000:5000::/home/mails:/sbin/nologin
>
> shell> cat /etc/group | grep mails
> mails:x:5000:

これは、dovecotのためのものですよね? postfixで指定しているvirtual_gid/uidは登録する必要はなく、メールボックスのオーナとしてだけしか利用されないのでpostfixとしては敢えて登録は必要なく、/var/spool/mail/vhosts/hogehoge.comを5000:5000としておくだけの話です。

>
> メールの送信はこのサーバ(newmail.hogehoge.com)上から SMTP コマンドを使って他のサーバに送信ができます。受信側からメールの返信を行うと、ログを見る限りはサーバに到達しているようですが、reject されて戻ってしまいます。また、このサーバ上から SMTP コマンドを使って root を送信者として sample01 宛にメールを送信するとやはり user unknown で戻ってきてしまいます。
>
> shell> telnet localhost 25
> Trying 127.0.0.1...
> Connected to localhost.localdomain (127.0.0.1).
> Escape character is '^]'.
> 220 newmail.hogehoge.com ESMTP unknown
> HELO newmail.hogehoge.com
> 250 newmail.hogehoge.com
> MAIL FROM: root@newmail.hogehoge.com
> 250 2.1.0 Ok
> RCPT TO: sample01@newmail.hogehoge.com
> 550 5.1.1 <sample01@newmail.hogehoge.com>: Recipient address rejected: User unknown in local recipient table

まさに。このエラーはユーザがいないからなので、/var/spool/mail/vhosts/hogehoge.comのオーナが原因と思います。(mydistnation関係も)


- 関連一覧ツリー (▼ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ
Eメール
タイトル
メッセージ   手動改行 強制改行 図表モード
参照先
暗証キー (英数字で8文字以内)
確認キー
確認キー
投稿する場合は、左に表示されている3文字(英大文字)の確認キーを必ず入力してください。
 (確認キーは表示してから30分間のみ有効です。)
  プレビュー

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No 暗証キー