メールサーバ構築その2(Dovecot編)

2013.05.31 Author: 443

どうもです。443 です。

**独り事**
さて、メルセデスとピレリによる秘密裏のタイヤテスト問題、
メルセデスへ相当な、ペナルティーがかせられそうです。
セルジオ ペレスのタイトル争いをしているドライバーへのシケイン飛込みの問題。
若いドライバーは、いつの時代も、アグレッシブで、チャレンジャーだと思います。
それが無いのであれば、面白くない!
**独り事**

さて、今回は、Dovecot 2系(2.0.9)のインストール、設定、POP3S、IMAPSを使用できるように、
SSL化を行いたいと思います。

■ Dovecotについて
UNIX系のOSにて動作する、POP3、IMAPサーバです。
以下のURLが本家になります。
http://www.dovecot.org/

今回は、postfixadminにて作成されるユーザの使用を前提とし、
SSL化を行い、POP3S,IMAPS化をします。


■ Dovecotインストール

# yum install dovecot dovecot-mysql

■ Dovecot 起動プロセス設定

# chkconfig --list | grep dovecot
dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig --level 2345 dovecot on
# chkconfig --list | grep dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off

■ vmailユーザ追加

# groupadd -g 10000 vmail
# useradd -u 10000 -g 10000 -d /var/vmail -m -s /sbin/nologin vmail

■ /etc/dovecot/dovecot.conf 編集

# cp -p /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig
# vi /etc/dovecot/dovecot.conf
---82行目を以下に変更-----------------
!include_try /etc/dovecot/local.conf
------------------------------------

■ /etc/dovecot/local.conf 編集

# vi /etc/dovecot/local.conf
--------------------------------------
protocols = imap pop3
listen = *
login_greeting = ready.
syslog_facility = local0
ssl = yes
ssl_cert = ssl_key = mail_location = maildir:/var/vmail/%d/%u
mail_uid = 10000
mail_gid = 10000
auth_mechanisms = plain login
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
protocol imap {
mail_plugins = quota imap_quota
}
protocol pop3 {
mail_plugins = quota
}
--------------------------------------

■ /etc/dovecot/conf.d/10-auth.conf 編集

# cp -p /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig
# vi /etc/dovecot/conf.d/10-auth.conf

---119-120行目 を変更----------------
#!include auth-system.conf.ext
!include auth-sql.conf.ext
-------------------------------------

■ /etc/dovecot-sql.conf 作成

# cp /usr/share/doc/dovecot-2.0.9/example-config/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext

■ /etc/dovecot/dovecot-sql.conf.ext 編集

# cp -p /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig
# vi /etc/dovecot/dovecot-sql.conf.ext
---29行目 "driver = mysql" に変更---
driver = mysql
--------------------------------------

---66行目 "" を変更---
connect = host=localhost port=3306 dbname=postfix user=postfix password=MySQL_postfixユーザのパスワード
--------------------------------------

---73行目 "default_pass_scheme = MD5-CRYPT" に変更---
default_pass_scheme = MD5-CRYPT
--------------------------------------

---125行目 に以下を追加---
user_query = SELECT concat('/var/vmail/%d/', maildir) AS home, 10000 AS uid, 10000 AS gid FROM mailbox WHERE username = '%u' AND active = '1'
--------------------------------------

---134行目 に以下を追加---
password_query = SELECT username as user, password FROM mailbox WHERE username = '%u' AND active = '1'
--------------------------------------

■ /etc/dovecot/dovecot-sql.conf.ext のオーナー、パーミッションの変更

# chgrp dovecot /etc/dovecot/dovecot-sql.conf.ext
# chmod 640 /etc/dovecot/dovecot-sql.conf.ext

■ dovecot-openssl.cnf の編集

# cp -p /etc/pki/dovecot/dovecot-openssl.cnf /etc/pki/dovecot/dovecot-openssl.cnf.orig

# vi /etc/pki/dovecot/dovecot-openssl.cnf

---2行目 "default_bits = 2048" に変更-------
default_bits = 2048
-------------------------

---10行目 "C=JP" に変更---
C=JP
---------------------

---19行目 "O=EXAMPLE Co LTD" に変更---
O=EXAMPLE Co LTD
---------------------

---22行目 "#OU=IMAP server" に変更---
#OU=IMAP server
---------------------

---25行目 "CN=mail.example.com" に変更---
CN=mail.example.com
---------------------

---28行目 "emailAddress=postmaster@example.com" に変更---
emailAddress=postmaster@example.com
----------------------------------------------------

■ mkcert.sh の編集

# cd /usr/libexec/dovecot/
# cp -p mkcert.sh mkcert.sh.orig
# vi mkcert.sh
---13-14行目 を変更-------------------------
CERTFILE=$CERTDIR/mail.example.com.cert
KEYFILE=$KEYDIR/mail.example.com.key
------------------------------------------

---36行目 を変更----------------------------
$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE -days 3650 || exit 2
------------------------------------------

■ mkcert.shの実行

# ./mkcert.sh
Generating a 1024 bit RSA private key
......................++++++
.............++++++
writing new private key to '/etc/pki/dovecot/private/mail.example.com.key'
-----

subject= /C=JP/O=EXAMPLE Co LTD/CN=mail.example.com/emailAddress=postmaster@example.com
SHA1 Fingerprint=8B:CE:F1:29:D1:66:6B:BD:26:DB:3C:35:7B:8E:D5:F5:21:E1:35:56

■ 証明書ファイルの確認

# cd /etc/pki/dovecot/certs/
# chmod 444 mail.example.com.cert
# ls -l
-rw------- 1 root root 847 2013-05-31 21:45 dovecot.pem
-r--r--r-- 1 root root 1241 2013-05-31 21:54 mail.example.com.cert
# openssl x509 -text -noout < /etc/pki/dovecot/certs/mail.example.com.cert
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
c5:d2:26:db:da:91:23:55
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=JP, O=EXAMPLE Co LTD, CN=mail.example.com/emailAddress=postmaster@example.com
Validity
Not Before: May 31 12:54:35 2013 GMT
Not After : May 29 12:54:35 2023 GMT
Subject: C=JP, O=EXAMPLE Co LTD, CN=mail.example.com/emailAddress=postmaster@example.com
Subject Public Key Info:
...

■ 証明書ファイルの設置

# cd /etc/pki/dovecot/private/
# chmod 400 mail.example.com.key
# ls -l
-rw------- 1 root root 916 2013-05-31 21:45 dovecot.pem
-r-------- 1 root root 1708 2013-05-31 21:54 mail.example.com.key

■ rsyslog.confの編集

# cp -p /etc/rsyslog.conf /etc/rsyslog.conf.orig
# vi /etc/rsyslog.conf
---42行目を変更---------------------------------------
*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages
-----------------------------------------------------

---63-64行目 を追加-----------------------------------
# Dovecot
local0.* /var/log/dovecot.log
----------------------------------------------------

■ ログファイルの設置

# touch /var/log/dovecot.log

■ syslogサービスの再起動

# service rsyslog restart
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]


■ dovecot 起動
# service dovecot start
Starting Dovecot Imap: [ OK ]

■ サービスポートアップを確認する。

# netstat -anp | grep "dovecot"
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1133/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1133/dovecot
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1133/dovecot
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1133/dovecot

以上で、Dovecotの準備が整いました。
次は、恐らくPostfix2.9系のインストールと設定を行うと思います。

それでは、失礼します。

名古屋のWebシステム開発・ネットワーク構築会社 コネクティボへ