トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Dovecotインストール

概要

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)
       $ECHO -n "starting $SERVICE ... "
       $PROG && $ECHO '[ OK ]' || $ECHO '[ NG ]'
       ;;
stop)
       $ECHO -n "stopping $SERVICE ... "
       kill `cat $PIDFILE` && $ECHO '[ OK ]' || $ECHO '[ NG ]'
       ;;
reload|refresh)
       $ECHO -n "refreshing $SERVICE ... "
       kill -HUP `cat $PIDFILE` && $ECHO '[ OK ]' || $ECHO '[ NG ]'
       ;;
restart)
       $0 stop
       $0 start
       ;;
*)
       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

リンク

最終更新時間:2007年05月03日 14時28分24秒