質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Q&A

解決済

1回答

11501閲覧

Postfix+dovecotで認証はするが、受信できない。 サーバの移行に伴いデータをコピーしてきたユーザについて

sasa56563

総合スコア22

Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

0グッド

1クリップ

投稿2019/02/14 02:24

編集2019/02/14 12:06

Postfix+dovecotで認証はするが、受信できないことについて

メールサーバの移行をおこなっているのですが、送信はできるのですが、受信ができないで困っています。

移行に際しては、ホームディレクトリーを持たないユーザがいますので、
mailbox file is /var/spool/mail/user or /var/mail/user
と初期のままで、dovecotは

vi /etc/dovecot/conf.d/10-mail.conf mail_location = mbox:~/mail:INBOX=/var/mail/%u

としています。

検証に当たっては移行ユーザではなく新サーバで作ったユーザuserで実験をおこないました。

Beckey!で送受信してみたのですが、送信は問題なくできるのですが、受信はログインはできていますが、受信ができません。

maillogをみると

Feb 14 11:06:31 gwmail dovecot: pop3-login: Login: user=<user>, method=PLAIN, p=192.168.0.199, lip=192.168.1.220, mpid=9947, TLS, session=<N0JgG9GB1BOsGADH> Feb 14 11:06:31 gwmail dovecot: pop3(user): Error: Couldn't open INBOX: Permission denied Feb 14 11:06:31 gwmail dovecot: pop3(user): Couldn't open INBOX: Permission denied top=0/0, retr=0/0, del=0/0, size=0

INBOX: Permission deniedとなってしまいます。試しに Maildir/形式にしても同じ結果が出てしまいます。
当然、サーバ上からはmailコマンドで受信がでます。

追記 これについてはユーザを作り直すことで解消しました。一番下に書きました

もうひとつ移行ユーザについてですが、

Feb 14 11:14:42 gwmail dovecot: pop3-login: Login: user=<user2>, method=PLAIN, p=192.168.0.199, lip=192.168.1.220, mpid=9958, TLS, session=<XhWyONGB8BOsGADH> Feb 14 11:14:42 gwmail dovecot: pop3(user2): Error: Mail access for users with UID 882 not permitted (see first_valid_uid in config file, uid from userdb lookup). Feb 14 11:14:42 gwmail dovecot: pop3(user2): Error: Invalid user settings. Refer to server log for more information.

となりログイン自体ができません。

first_valid_uid = 500

と明示してもなぜか効いていないのか同じエラーになります。
どなたかヒントを下さらないでしょうか。


追加 もう一点webminで新たなユーザuser3を追加して受信しようとするのですが、これもPermission deniedエラーが出てしまいます。なにか同じようなところでつまいずいています。
→解決 以下に書いております

Feb 14 11:36:51 gwmail dovecot: pop3-login: Login: user=<user3>, method=PLAIN, p=192.168.0.199, lip=192.168.1.220, mpid=10030, TLS, session=<POnah9GBuRSsGADH> Feb 14 11:36:51 gwmail dovecot: pop3(user3): Error: Namespace '': mkdir(/home/user3/mail) failed: Permission denied (euid=1381(user3) egid=100(users) missing +w perm: /home/user3, UNIX perms appear ok (ACL/MAC wrong?)) Feb 14 11:36:51 gwmail dovecot: pop3(user3): Namespace '': mkdir(/home/user3/mail) failed: Permission denied (euid=1381(user3) egid=100(users) missing +w perm: /home/user3, UNIX perms appear ok (ACL/MAC wrong?)) top=0/0, retr=0/0, d

上記の3点目の疑問は

chmod 0600 /var/mail/*

とすることで解決しました。同時に1つめの質問もユーザを作り直すことでエラーは解消しました。

残る問題はパスワード、グループを古いサーバから引き継いだユーザに関してです。

ユーザの移行はpasswd,group,shadowを移したのですが、データ(/var/spool/mail)は移行していません。これが原因なのでしょうか。

/var/spool/mailのデータも移行しました。ファイルのパーミッション600、グループはmailで統一しました。
結果は同じになっております。また特定のユーザについてホームディレクトリーをmkdirしてみましたが、おなじでした。
first_valid_uidのところでひっかかっています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

scsi

2019/02/14 10:44 編集

doveconf -n の結果がみたいです。 また、mboxディレクトリ配下のファイルは全て正しいパーミションですか? Dovecotはどのようにインストールしましたか? 再作成したユーザのUIDは作成前と同じですか?
sasa56563

2019/02/14 11:18

さきほど/var/spool/mailのデータも移行しました。ファイルのパーミッション600、グループはmailで統一しました。 結果は同じになっております。 doveconf -n ``` first_valid_uid = 200 listen = * mail_location = mbox:~/mail:INBOX=/var/mail/%u mbox_write_locks = fcntl namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { driver = pam } ssl = required ssl_cert = </etc/pki/postfix/postfix.pem ssl_key = # hidden, use -P to show it userdb { driver = passwd } ``` /var/spool/mail のすべてのファイルは600でグループはmailにしています。もとのサーバからpass,group,shadowをユーザ分コピーしてきましたのでUIDは作成前と同じです。 Dovecotについてはyumでインストールし、また、完全にremoveしたのち入れ直しもしました。
sasa56563

2019/02/14 11:42

試しに 後付けでひとりのユーザにホームディレクトリーとその下にmailディレクトリーを作成してみましたが、 結果は同じです。
scsi

2019/02/14 12:47

ちょっと同じ設定でサーバ作ってみます。
guest

回答1

0

ベストアンサー

CentOS7 + Dovecot v2.2.36 にて同じ設定で試しましたが再現しません。
正常にメールを受信できます。

first_valid_uid = 500 を設定したあと dovecot は再起動しましたでしょうか?

passwd,group,shadow も別のサーバから1ユーザ分だけコピーしてみましたが、特に問題なく POP できました。

投稿2019/02/14 10:35

編集2019/02/14 13:22
scsi

総合スコア2840

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sasa56563

2019/02/14 10:40

回答ありがとうございます。最初に書きましたように first_valid_uid = 500 としてやってみたのですが、そこがうまく認識されていないのか同じエラーが出ます。
sasa56563

2019/02/14 14:05 編集

再現テストまでしていただき誠にありがとうございます。 first_valid_uid = 500はデフォルトでもあり、明記した上でdovecotを再起動もかけてみたのですが、 うまくいきませんでした。サーバ上で登録したユーザは問題ありませんが、移行したユーザについてはuid関連で通っていないようです。 これまで5年ごとに数度受信メールサーバの移行をしてきましたが、はじめて壁に当たっています。 osはREDHAT系であったり、debian系であったり、sendmail、postfixであったりですが、受信はqpopperでした。今回はdebian+postfix+qmaiからCENT+postfix+dovecotへの移行です。 どこかuidまわりの基本的なところで引っかかっているようです。 最悪、いったん全ユーザを削除し、シェルスクリプトにして一斉に登録し直し、ついでにホームディレクトリーも作って、メール形式をかえるのも一計かと思う次第です。 もう少し試行錯誤できる箇所があれば、絞り込めるかもしれません。
scsi

2019/02/14 19:39

移行したユーザは、groupもuidもidが既存のものと被っているものはないですよね? Centos7はfirst_valid_uidはデフォルト1000でした。 私はいつもOSアカウントとメールアカウントは切り離して管理しているので逆に新鮮でした!頑張って下さい! 因みにこれをベースに私のメールサーバは構築してます。 https://memo.ma3ki.net
sasa56563

2019/02/15 00:54

本当にありがとうございます。 >移行したユーザは、groupもuidもidが既存のものと被っているもの pwck gpckで確認し、重なるものは削除しています。ただしグループは100のusersで新旧共通です。 >Centos7はfirst_valid_uidはデフォルト1000 たしかにそうですね。コメントアウトでdovecotのデフォルト値500になると思います。 古いosからの移行で形式の違いについて大変参考になります。 maillogのuid from userdb というところのuserdbあたりに原因があるのではと考えます。 これが整理できればうまくいきそうですが、ただどう整合をとるかはわかりません。 ① 移行してきたユーザーのuidを付け替える。csvにしてexcelで一斉に付け替える。 それでもいかないときは ② 先に述べたようにユーザーを削除、adduser -p -mで作り直す。 いささか手間ですが、②のほうが後々矛盾は少ないかと。 それと一点お聞きしたいのは OSアカウントとメールアカウントは切り離し ということですが、作成時にホームディレクトリーを作らず、メール専用ユーザーとしてきたのですが、これとは違い別の設定があるのでしょうか。aliasesによるという意味でしょうか。
scsi

2019/02/15 05:27

メールアカウントは ldapで管理してます。 詳しくはリンク先を見ていただけると
sasa56563

2019/02/15 06:32 編集

ldapですか。最近何をするものかと少し気になっていたのですが、勉強してみます。 さて、usermodでuid(1000番以降に)を付け替えてみたのですが、見事認証はできたようです。 しかし、第1問目の質問と同じ Couldn't open INBOX: Permission denied top=0/0, retr=0/0, del=0/0, size=0 が出て、メールを読み込めません。1問目はユーザを作り直すことで解決したのですが、結局この問題は残ったままでした。 やはり、ユーザを作り直すしかないのでしょうか。
scsi

2019/02/15 07:17

Mboxのパーミションは正しいですかね?
sasa56563

2019/02/15 07:35

/var/mail/ は600です。
sasa56563

2019/02/15 07:44 編集

uid1000以上のユーザでは認証できるのですが、なぜかホームディレクトリー(存在しない)に書き込みに行ってpermissonエラーを起こしています。(3点目の質問と同じ結果) Feb 15 16:37:01 gwmail dovecot: pop3(user): Error: Namespace '': mkdir(/home/user/mail) failed: Permission denied (euid=1044(user) egid=100(users) missing +w perm: /home, UNIX perms appear ok (ACL/MAC wrong?), dir owned by 0:12 mode=0777) Feb 15 16:37:01 gwmail dovecot: pop3(user): Namespace '': mkdir(/home/user/mail) failed: Permission denied (euid=1044(user) egid=100(users) missing +w perm: /home, UNIX perms appear ok (ACL/MAC wrong?), dir owned by 0:12 mode=0777) top=0/0, retr=0/0, del=0/0, size=0 (ACL/MAC wrong?)というのが移行と関係があるのかもしれません。
scsi

2019/02/15 08:07

ホームにも書き込む設定してましたよ。見せてもらった設定では
sasa56563

2019/02/15 08:53

ホームは777に設定しているのですが、・・・・
sasa56563

2019/02/15 11:37

完全な解決には至っていませんが、再現テストで問題がなかったことを考えると環境の違いでデータが完全な形で引き継がれていないと考えられます。 完全な解決方法としてはやはり新規ユーザーとして作り直すことが正解だと思いました。 ユーザ、パスワードを一覧にして useradd -m -p username を考えたのですが、パスワードはcrypt関数にしたもののようで passwdは後に付ける方が良いようです。 調べていくとchpasswdという非常に便利なコマンドもあるようで気が楽になりました。 ありがとうございます。
scsi

2019/02/15 13:25

あまり役に立たなかったような気もしますが、頑張って下さい!
sasa56563

2019/02/15 14:09

最も重要なことは問題点を絞り込んでいくことだと思っています。示唆をいただくたびに引っかかっていることが整理して考えられます。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問