Postfix3.3 マルチドメイン ソース版 dovecot 設定

この記事は約7分で読めます。

Postfix 3.4 [dovecot] CentOS7(マルチドメイン)
↑こちらもご覧ください。記事が新しいです。

Postfixのpop3サーバー、dovecotのマルチドメイン版の設定です。
Postfix 3.3 on AmazonLinux2 バーチャルドメイン 2018年8月版の、dovecot設定です。

何もせず、ログイン

まずは、シングルドメイン版のdovecotのまま、Postfix 3.3 on AmazonLinux2 バーチャルドメイン 2018年8月版の、サーバーにログインしてみます。

# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user (メールアドレス)
+OK
pass (パスワード)
-ERR [AUTH] Authentication failed.

↑エラーになります。

ログを見てみます。

Sep XX XX:XX:XX dovecot: master: Dovecot v2.3.2.1 (0719df592) starting up for imap, pop3
Sep XX XX:XX:XX dovecot: pop3-login: Disconnected (no auth attempts in 11 secs): user=<>, rip=127.0.0.1, lip=127.0.0.1, secured, session=<XXXXXX/XXXXXX>
Sep XX XX:XX:XX dovecot: pop3-login: Disconnected (auth failed, 1 attempts in 113 secs): user=<(メールアドレス)>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured, session=<XXXXXX/XXXXXX>

「auth failed」となっています。

ログを詳しく

詳細なログを取るために、ログ出力の設定を変更します

# vi 10-logging.conf
auth_verbose_passwords = yes
auth_debug = yes
mail_debug = yes

として、再度、telentをしてみます。
dovecot: auth: Debug: passwd-file /etc/dovecot/users: Read 2 users in 0 secs

↑現状、「/etc/dovecot/users」が、パスワードファイルになっている。
これを、mysqlを見に行くようにしなければいけません。

MySQLの設定

# cd /etc/dovecot/conf.d
# vi auth-sql.conf.ext

このファイルの中の
args = /etc/dovecot/dovecot-sql.conf.ext
の部分を記述します。

Postfix 3.3 on AmazonLinux2 バーチャルドメイン 2018年8月版のMySQLの設定情報を見に行くようにします。
cd /etc/dovecot/conf.d
cp /root/src/dovecot-2.3.2.1/doc/example-config/dovecot-sql.conf.ext dovecot-sql.conf.ext

↑サンプルファイルを持ってきます。
# vi dovecot-sql.conf.ext

#driver =
 ↓
driver = mysql


#connect =
 ↓
connect = host=localhost dbname=(postfix用DB) user=(DB用ユーザ) password=(DB用パスワード)


#default_pass_scheme = MD5
 ↓
default_pass_scheme = CRYPT

user_query と password_query を以下のようにします。

user_query = SELECT concat('/mail/', maildir) AS home, 10000 AS uid, 10000 AS gid FROM mailbox WHERE username = '%u' AND active = '1'
password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1'

MySQLを見に行くようにします

# vi 10-auth.conf


#!include auth-deny.conf.ext
#!include auth-master.conf.ext

!include auth-system.conf.ext
#!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

 ↓

#!include auth-deny.conf.ext
#!include auth-master.conf.ext

!include auth-system.conf.ext
!include auth-sql.conf.ext
#!include auth-ldap.conf.ext
#!include auth-passwdfile.conf.ext
#!include auth-checkpassword.conf.ext
#!include auth-vpopmail.conf.ext
#!include auth-static.conf.ext

vi auth-sql.conf.ext

  #args = /etc/dovecot/dovecot-sql.conf.ext
 ↓
  args = /etc/dovecot/conf.d/dovecot-sql.conf.ext

↑と、2カ所変更します。
# vi 10-mail.conf
# mail_location = maildir:~/Maildir
mail_location = maildir:/mail/%d/%n

↑メールの場所を指定します。
%d や %n などの変数は、
https://wiki2.dovecot.org/Variables
が参考になります。

dovecotのMySQL用ドライバ

/etc/rc.d/init.d/dovecot restart
再起動して

telnet localhost 110
でアクセスすると
dovecot: auth: Fatal: Support not compiled in for passdb driver ‘sql’
と、エラーが出る。

MySQL用ドライバーが必要なので、再コンパイルします。

# cd dovecot-2.3.2.1
# ./configure --prefix=/usr --sysconfdir=/etc --with-mysql
# make
# make install

/etc/rc.d/init.d/dovecot restart
再起動後、
pop3ポートにログインを試みます。
# telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user (メールアドレス)
+OK
Pass (パスワード)
+OK Logged in.
list
+OK 4 messages:
1 647
2 702
3 702
4 1213
.

↑ 4通のメールが溜まってきました。 成功です。

dovecot、マルチドメイン結論

pop3のマルチドメインは、冷静に設定を見れば、大丈夫です。慌てる必要はありません。

タイトルとURLをコピーしました