manekineko倉金家ホームページ

趣味の部屋/インターネットサーバー/サーバー構築メモ その2/メールサーバー その2

Dovecot

2010年9月15日(水) 2010年9月16日(木)更新
ユーザーのメールソフト(Outlookなど)とつなぐためのメールユーザーエージェント(MUA)として、CentOSにはDovecotが標準でインストールされていますので、これを設定します。


以前のサーバーはユーザエージェントにcourier-IMAPをつかっていましたが、今回はCentOS標準のDovecotを使ってみます。設定はさほど難しくはないようです。
設定ファイルは /etc/dovecot.conf
ためしに開いて見てみると、ほとんどすべてコメントアウトされていて何も設定されていません。
設定のディフォルト値を見てみます。
# dovecot -n
標準はimapだがpop3も使える。認証方式はpamといった設定のようです。

さっそく設定していきます。必要な設定項目を探して書き換えます。
# メールプロトコルの指定。とりあえずSSLは使わないのでimaps pop3s は除外。
protocols = imap pop3

# plaintextでの認証を許可
disable_plaintext_auth = no

# メールボックス(メールディレクトリ)の場所
mail_location = maildir:/var/spool/mail/%d/%n …PostfixAdminに設定した形式に合わせる

# /var/spool/mailをアクセスするグループ
# /var/spool/mailの所有者がroot, グループがmailの場合
mail_privileged_group = mail

# 配送対象最小uid, 配送に使うユーザ(mail)のuidを含める
first_valid_uid = 8

# 配送対象最小gid, 配送に使うグループ(mail)のgidを含める
first_valid_gid = 12

auth default {}の中
  # auth mechanism
  mechanism = plain login

  # pamは使わない。最初にpamを試すため毎回エラーがログに残る。
  #passdb pam {
  # ....
  #}

  # mysql認証設定
  passdb sql {
    # Path for SQL configuration file, see doc/dovecot-sql-example.conf
    args = /etc/dovecot-mysql.conf
  }

  userdb sql {
    # Path for SQL configuration file, see doc/dovecot-sql-example.conf
    args = /etc/dovecot-mysql.conf
  }

  # /etc/passwdなども使わない
  #userdb passwd {
  #....
  #}

/etc に dovecot-mysql.conf をつくり、以下記入。

長い行が2行に表示されているが実際は1行で。

driver = mysql

connect = host=/var/lib/mysql/mysql.sock dbname=postfix user=postfix password=mysql-password

user_query = SELECT concat('/var/spool/mail/', maildir) as home, 8 as uid, 12 as gid FROM mailbox WHERE username = '%u' AND active = '1' …8, 12はそれぞれ配送に使用するユーザ(mail)のuid,gid

password_query = SELECT password FROM mailbox WHERE username = '%u' AND active = '1'
ただしpasswordがdovecot用に暗号化(MD5)されて保存されていない場合にはそれを指定する必要があります。今回は平文で保存しているので、
default_pass_scheme = PLAIN

MySQLログインパスワードがかかれているので、ファイルをroot所有とし、パーミッションを0600にしておきます。

ためしにdovecotを起動してみます。
# service dovecot start
とたんにSELinuxから通知がきました。
MySQLにアクセスしたのがひっかかりました。

SELinux Administration (Selinux Management) から、
Boolian -> SELinux Service Protection -> Dsable SELinux Protection for Dovecot daemon
にチェック、今度はOK。