[ITPASS2017]Dovecot のインストールと設定

dovecot のインストールと設定

dovecot の取得

dovecot をパッケージからインストールする.

# apt-get install dovecot-imapd 

dovecotの設定

dovecot の設定は /etc/dovecot/conf.d 以下のファイルで行う. 以下のように各ファイルにおいて設定する. 必要な部分のコメントアウトを外して設定する (なお, 初めからコメントアウトされている値はデフォルトの値となっている).

# cd /etc/dovecot/conf.d

具体的には以下の通り.

10-auth.conf

disable_plaintext_auth = no   #平文でのログインを許す

auth_mechanism = plain cram-md5

#include auth-system.conf.ext (コメントアウトする)

!include auth-passwdfile.conf.ext

10-mail.conf

mail_location = mbox:~/:INBOX=~/Mailbox   #保存形式

mail_privileged_group =mail

mbox_read_locks = flock

mbox_write_locks = dotlock flock

10-master.conf

service imap-login

port = 143




service imap

process_limit = 256



service Auth-worker

user = root

10-logging.conf.

log_timestamp = "%Y-%m-%d %H:%M:%S "

auth-passwdfile.conf.ext

passdb
args = scheme=CRAM-MD5 username_format=%u /etc/dovecot.cram-md5   #パスワードの認証方法. dovecot.crma-md5というパスワードファイルからパスワードを読み込む

userdb
args = username_format=%u /etc/dovecot.cram-md5   #ユーザの認証方法. dovecot.cram-md5というパスワードファイルから読み込む

dovecot を再起動する.

# service dovecot restart

dovecot の動作を確認する.

# service dovecot status

認証データベースファイルの作成

パスワードファイルである /etc/dovecot.cram-md5 を書く. これが CRAM_MD5 の認証データベースファイルとなる. 以下がその書式.であり, passwd ファイルと同じ形式で書く.

[acount]:{パスワードの形式(plainなら平文,CRAM-MD5ならCRAM_MD5で暗号化されたパスワード}[PASSWORD]:[uid]:[gid]::[home]

[acount]には自分のアカウント名. PASSWORDが imap 用パスワード. そのまえの{}によって書き方が変わる. [uid] と [gid] にはそれぞれ自分の uid と gid を入れる. /etc/passwd で確認することができる. 最後の[home]は自分のホーム領域のパス.

具体的には以下の通り. 赤く強調されているところが実際のパスワードとユーザ情報である. xxxxxxxはパスワード.

# CRAM-MD5 authentication database
# Entries are in form <user>:{plain}<password>:<uid>:>gid<::>Home dir<
# or <user>:{CRAM-MD5}<cram_md5 password>:<uid>:>gid<::>Home dir<
# Lines starting with "#" are comments
chikuwa*:{plain}xxxxxx:40001:40001::/home/mondo1

パーミッション, ファイルの所有者を変更する

# chmod 600 /etc/dovecot.cram-md5
# chown dovecot:dovecot /etc/dovecot.cram-md5

MD5 認証データベースファイル自動生成

CRAM_MD5 の認証データベースファイル /etc/dovecot.cram-md5 の書き込みには root 権限が要る. そのため imap 認証のパスワードを各ユーザが編集することはできない.そこで apop 認証パスワード ~/Maildir/.password を読み出して /etc/cram-md5.pwd を生成するスクリプト dovecotpwdbg を書く.

$ wget http://www.ep.sci.hokudai.ac.jp/~epmail/y2015/dvlop/script/dovecotpwdbg
$ sudo -s
# cp dovecotpwdbg /etc/cron.daily/dovecotpwdbg

パーミッションを変更する.

# chmod 755 /etc/cron.daily/dovecotpwdbg

より頻繁にこのデータベースを更新するために cron を用いる.

# crontab -e

以下の一行を追加する

50 * * * *   /etc/cron.daily/dovecotpwdbg 

パスワードファイル /etc/dovecot.cram-md5 は新しいものにどんどん書き換えられるため, 一定時間でパスワードが消えることに注意(毎時50分)

テスト

tako の外のホストから, imap 対応メーラー(例. Thunderbird)を用いて imap サーバを tako に指定して, tako 上の自分のアカウントあてに届いたメールを読んでみる. メーラの設定は以下の通り.

   受信サーバ: IMAP
   サーバのホスト名: tako-itpass.scitec.kobe-u.ac.jp
   受信サーバのポート番号: 143
   受信サーバのSSL: 接続の保護なし
   認証方式: 暗号化されたパスワード認証 

ntpdate との関係

dovecot は ntpdate 等で時刻を調節する際に,5 秒ほどずれているとサービスを停止してしまう. そのため,cron.daly でntpdate を実行させる場合にはdovecot が停止しても restart できるようにする.具体的には /etc/cron.daily/ntpdate に以下の行を追加する.

service dovecot restart > /dev/null 2>&1

参考資料

[ITPASSサーバ構築・運用ドキュメント へ戻る]