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のマルチドメインは、冷静に設定を見れば、大丈夫です。慌てる必要はありません。