- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!概要
Dovecotはセキュアで高性能なPOP3/IMAPサーバです。Dovecotを標準で採用するLinuxディストリビューションもあり、今後普及していきそうな感じです。
!!!インストール
!!ユーザ・グループの作成
dovecotが使うユーザとグループを作成します。
# groupadd dovecot
# useradd -g dovecot -s /bin/false dovecot
!!ダウンロード・展開
http://www.dovecot.org/ からソースコードをダウンロードして適当なディレクトリに展開します。
$ tar zxvf dovecot-1.0.0.tar.gz
$ cd dovecot-1.0.0
!!コンパイル・インストール
$ ./configure
$ make
# make install
!!ディレクトリ作成
ログ用ディレクトリを作成
# mkdir /var/log/dovecot
!!!設定
!!dovecot.conf
/usr/local/etc/dovecot.confを編集します
# ランタイムデータが置かれるディレクトリ
base_dir = /var/run/dovecot/
# 有効にするプロトコル
protocols = pop3 pop3s imap imaps
# プレーンテキスト認証を許可する
#(PAMではAPOPが使えないので。SSLを使うならyesでもいい。)
disable_plaintext_auth = no
# ログファイル名
log_path = /var/log/dovecot/dovecot.log
# SSL証明書ファイル
ssl_cert_file = /etc/postfix/postfix-cert.pem
# SSL秘密鍵ファイル
ssl_key_file = /etc/postfix/postfix-key.pem
# Maildir形式を使う
mail_location = maildir:~/Maildir
# 有効なUIDの最小値
# Solarisでは一般ユーザのUIDは100から始まるので100にする
first_valid_uid = 100
# 有効なUIDの最大値
last_valid_uid = 60000
# IMAPの設定
protocol imap {
}
# POP3の設定
protocol pop3 {
# UIDLのフォーマットを指定する
pop3_uidl_format = %08Xu%08Xv
}
# 認証設定
auth default {
# 認証メカニズム
mechanisms = plain login
# PAM認証を使う
passdb pam {
}
# ユーザデータベースにpasswdファイルを使う
userdb passwd {
}
# 認証プロセスが使用するユーザ
user = root
# PostfixからDovecot SASL-Authを使うための設定
socket listen {
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
!!!起動
!!起動スクリプト
起動スクリプトの例です。/lib/svc/method/dovecotとして作成します。
#!/bin/sh
# rc script for dovecot
PROG=/usr/local/sbin/dovecot
SERVICE=`basename $PROG`
PIDFILE=/var/run/dovecot/master.pid
ECHO=/usr/ucb/echo
case "$1" in
start)
$PROG && echo '[ OK ]' || echo '[ NG ]'
$ECHO -n "starting $SERVICE ... "
$PROG && $ECHO '[ OK ]' || $ECHO '[ NG ]'
;;
stop)
kill `cat $PIDFILE` && echo '[ OK ]' || echo '[ NG ]'
$ECHO -n "stopping $SERVICE ... "
kill `cat $PIDFILE` && $ECHO '[ OK ]' || $ECHO '[ NG ]'
;;
reload|refresh)
kill -HUP `cat $PIDFILE` && echo '[ OK ]' || echo '[ NG ]'
$ECHO -n "refreshing $SERVICE ... "
kill -HUP `cat $PIDFILE` && $ECHO '[ OK ]' || $ECHO '[ NG ]'
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 [start|stop|reload|restart]"
echo "Usage: $0 [start|stop|refresh|restart]"
exit 1
;;
esac
exit 0
!!マニフェストファイル
マニフェストファイルの例です。デフォルトで付属しているsmtp-sendmail.xmlを改変しました。/var/svc/manifest/network/dovecot.xmlとして作成します。
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<!--
Copyright 2006 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
-->
<service_bundle type='manifest' name='dovecot'>
<service
name='network/dovecot'
type='service'
version='1'>
<single_instance />
<dependency
name='fs-local'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/system/filesystem/local' />
</dependency>
<dependency
name='network-service'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/network/service' />
</dependency>
<dependency
name='name-services'
grouping='require_all'
restart_on='refresh'
type='service'>
<service_fmri value='svc:/milestone/name-services' />
</dependency>
<dependency
name='identity'
grouping='optional_all'
restart_on='refresh'
type='service'>
<service_fmri value='svc:/system/identity:domain' />
</dependency>
<dependency
name='system-log'
grouping='optional_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/system/system-log' />
</dependency>
<instance name='dovecot' enabled='false'>
<dependency
name='config-file'
grouping='require_all'
restart_on='refresh'
type='path'>
<service_fmri
value='file://localhost/usr/local/etc/dovecot.conf' />
</dependency>
<exec_method
type='method'
name='start'
exec='/lib/svc/method/dovecot start'
timeout_seconds='30' />
<exec_method
type='method'
name='stop'
exec='/lib/svc/method/dovecot stop'
timeout_seconds='30' />
<exec_method
type='method'
name='refresh'
exec='/lib/svc/method/dovecot refresh'
timeout_seconds='30' />
<template>
<common_name>
<loctext xml:lang='C'>
dovecot
</loctext>
</common_name>
<documentation>
<manpage title='dovecot' section='8'
manpath='/usr/local/man' />
</documentation>
</template>
</instance>
<stability value='Unstable' />
</service>
</service_bundle>
マニフェストをインポートします。
# svccfg -v import dovecot.xml
!!サービス起動
# svcadm enable dovecot
!!!リンク
*[Dovecot|http://www.dovecot.org/] - 公式