テスト用dovecot インストール

テスト用dovecot インストールの目的

テスト用のpop/imap serverが欲しくなったので、dovecotをインストールします。 本インストールの手順は、CentOS6でのpop/imapコマンド及び、pop/imapクライアントのテスト用pop/imap server構築を目的としています。実用的なpop/imapサーバーの構築は目的としていません。

dovecot 概要

dovecotのインストール

WikiのDevcot installationに従いインストールします。 今回は、ビルド済みバイナリ(RPM)をインストールします。

Fedora and RHEL (and CentOS/Scientific Linux/...)なのでyumでインストールする。

$ sudo yum install dovecot
$ rpm -q dovecot
$ dovecot --version

参考: http://wiki2.dovecot.org/FrontPage#Dovecot_installation

メールの配送場所の確認

Maildir形式を使用します。conf.d/10-mail.confに設定します。

$ sudo vi /etc/dovecot/conf.d/10-mail.conf 

    # See doc/wiki/Variables.txt for full list. Some examples:
    #   mail_location = maildir:~/Maildir
    上記サンプルに従い、以下を追記。保存して終了。

    mail_location = maildir:~/Maildir

テスト用のUnixユーザで、以下のコマンドを実行し、ユーザ用メールディレクトリを作成します。

$ mkdir ~/Maildir

参考: http://wiki2.dovecot.org/FindMailLocation

基本設定

基本設定を行います。以下コマンドでconfigurationファイルを場所を確認します。

doveconf -n | head -n1
認証設定

テスト用のユーザで、以下のコマンドを実行し、usersファイルを作成します。 passwordの箇所は変更を推奨です。

$ echo "$USER:{PLAIN}password:$UID:$GID::$HOME" > users

    # usersファイルの各値を確認する。環境変数がとれていない場合等は、以下のコマンドを実行。
    $ echo "`whoami`:{PLAIN}password:`id -u`:`id -g`::$HOME"

$ sudo mv users /etc/dovecot/

passwd-fileを使用するようにconf.d/10-auth.confを変更します。

$ sudo vi /etc/dovecot/conf.d/10-auth.conf 

    # 以下をコメントアウト。
    #!include auth-system.conf.ext

    # 以下のコメントアウトを削除。
    !include auth-passwdfile.conf.ext

conf.d/auth-passwdfile.conf.ext の記述を確認します。

$ cat /etc/dovecot/conf.d/auth-passwdfile.conf.ext 
...
passdb {
  driver = passwd-file
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
}

userdb {
  driver = passwd-file
  args = username_format=%u /etc/dovecot/users
}

以下のコマンドでも同様の結果を得られる事を確認します。

$ doveconf -n passdb userdb 
passdb {
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}

参考: http://wiki2.dovecot.org/BasicConfiguration

dovecot 起動

dovecotを起動します。

$ sudo dovecot

プロセス、ログ、pop port、imap portを確認します。

$ ps auxw | grep dovcot
$ sudo tail -f /var/log/maillog
$ ss -nl | grep '110'
$ ss -nl | grep '143'

参考: http://wiki2.dovecot.org/RunningDovecot,http://wiki2.dovecot.org/Logging

POP/IMAP導通確認

imapの導通

認証設定で作成したユーザで、導通確認します。

  • login
  • select
  • append
  • fetch
  • logout
$ telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot ready.
a login USER PASSWORD # 認証設定で作成したユーザでlogin
a OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS] Logged in
b select INBOX
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1399824069] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [HIGHESTMODSEQ 1] Highest
b OK [READ-WRITE] Select completed.
c append INBOX {9}
+ OK
TEST MAIL
* 1 EXISTS
* 1 RECENT
c OK [APPENDUID 1399824069 1] Append completed.
d fetch 1 rfc822
* 1 FETCH (FLAGS (\Seen \Recent) RFC822 {9}
TEST MAIL)
d OK Fetch completed.
e close INBOX
e OK Close completed.
f logout
* BYE Logging out
f OK Logout completed.
Connection closed by foreign host.
$ 
popの導通

認証設定で作成したユーザで、導通確認します。

  • user
  • pass
  • stat
  • list
  • retr
  • quit
$ telnet 127.0.0.1 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user USER # 認証設定で作成したユーザでlogin
+OK
pass PASSWORD # 認証設定で作成したユーザでlogin
+OK Logged in.
stat
+OK 1 9
list
+OK 1 messages:
1 9
.
retr 1
+OK 9 octets
TEST MAIL
.
quit
+OK Logging out.
Connection closed by foreign host.
$ 

参考: http://wiki2.dovecot.org/TestInstallation

テスト用dovecotインストール完了。