以前の記事で、SMTP 認証の仮想ユーザー対応について紹介した。
メールサーバーにおいての仮想ユーザーとは、Linux アカウント (/etc/passwd) を作成することなく、メールサーバー独自のユーザーを指す。

今回は、POP3/IMAP サーバー dovecot での仮想ユーザー対応方法を紹介する。

"dovecot" グループを作成する (CentOS では、dovecot インストール時に作成されている)。GID は、任意。

[root@centkun ~]# groupadd -g 510 dovecot 

"dovecot" ユーザーを作成する (CentOS では、dovecot インストール時に作成されている)。GID は、任意。

[root@centkun ~]# useradd -M -s /sbin/nologin -u 510 dovecot

"vmail" グループを作成する。GID は、任意。

[root@centkun ~]# groupadd -g 511 vmail

"vmail" ユーザーを作成する。GID は、任意。ホームディレクトリ "/home/vmail" を作成することに注意する。

[root@centkun ~]# useradd -u 511 -g vmail -s /sbin/nologin vmail

ログファイル "/var/log/dovecot.log"、"/var/log/dovecot-info.log" を作成する。(この設定は任意。)

[root@centkun ~]# touch /var/log/dovecot.log /var/log/dovecot-info.log
[root@centkun ~]# chown -R vmail:vmail /var/log/dovecot.log /var/log/dovecot-info.log

"dovecot.conf" を編集する。

[root@centkun ~]# vi /etc/dovecot.conf

ログファイルを指定する。(この設定は任意。)

log_path = /var/log/dovecot.log
info_log_path = /var/log/dovecot-info.log

"auth default" 内に以下の内容を定義する。

auth default {
    mechanisms = plain
    passdb passwd-file {
        args = /etc/dovecot.passwd
    }
    userdb static {
        args = uid=vmail gid=vmail home=/home/vmail/%u
    }
}

パスワードファイルを作成する。

[root@centkun ~]# vi /etc/dovecot.passwd

"dovecotpw" コマンドを使用して、パスワードを暗号化することも可能だが、今回は、プレーンテキストでパスワードを定義する。
以下の通り、ユーザー "user015@masudaq.com"、パスワード "TestingPassword015" を定義する。

user015@masudaq.com:{PLAIN}TestingPassword015

/etc/dovecot.passwd の変更内容を保存する。

dovecot を再起動する。

[root@centkun ~]# service dovecot restart
Dovecot Imap を停止中: [ OK ]
Dovecot Imap を起動中: [ OK ]

POP3 の疎通確認を実施する。

[root@centkun ~]# telnet xxx.xxx.xxx.xxx 110
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx).
Escape character is '^]'.
+OK Dovecot ready.

user user015@masudaq.com

+OK

pass TestingPassword015

+OK Logged in.

quit

+OK Logging out.
Connection closed by foreign host.

疎通確認が取れない場合は、以下のログファイルを参照し、問題を解決する。

  • /var/log/dovecot.log
  • /var/log/dovecot-info.log
  • /var/log/maillog

また、SELinux が有効になっている場合に、/var/log/dovecot.log、/var/log/dovecot-info.log が出力できないエラーが発生した。
問題のトレース時には、"system-config-securitylevel" ユーティリティにより、SELinux を無効化し、問題解消後、SELinux を有効にすれば良いだろう。

コメント (0)

コメントの投稿