概要
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
リンク
- Dovecot - 公式
最終更新時間:2007年05月03日 14時28分24秒