/etc/ \_ dovecot.conf [root:root 644] 主設定ファイル dovecot.d/ [root:root 755] 補助設定ファイル用ディレクトリ (新規作成) \_ ldapref.conf [root:dovecotauth 640] LDAP参照定義ファイル
Dovecot 1.0 以前のドキュメントは甚だ不足しているので、LDAP と関わりがなくても主なパラメータについては掲載する。当実装に特に深く関わるものは □地で示す。最新のディレクティブリストはオフィシャルサイト Dovecot.org の Dovecot configuration file で見られるが、1.1 からは記述法やパラメータ名が大幅に変更になっている。
パラメータ名 | 値 | 説明 |
基本設定 | ||
base_dir | /var/run/dovecot/ | ランタイムデータの保持に使用するディレクトリ |
protocols | pop3 | 提供するサービスプロトコル。本稿では IMAP は扱わない |
imap_listen | IMAP サービスは提供しないのでヌル | |
pop3_listen | * | POP3 サービスでリッスンする IPアドレス。 * ならマシンの持つインターフェイスアドレス全て。host:port の書式でポートを変えることも可能。ただし複数のアドレスを指定することはできない |
imaps_listen | 同、IMAPS サービスについて | |
pop3s_listen | 同、POP3S サービスについて | |
SSL | ||
ssl_disable | yes | POP3 通信の SSL/TLS サポートの無効/有効 |
disable_plaintext_auth | no | クライアントとの通信が SSL/TLS で暗号化されていない限り平文パスワードによるログインを一切禁止する/しない |
ログ | ||
log_path | Dovecot 自体で直接ログを書き出す場合の出力ファイルパス。ヌルなら syslog() に渡す | |
info_log_path | Dovecot 自体で直接インフォメーションログを書き出す場合。ヌルなら syslog() に渡す | |
log_timestamp | "%b %d %H:%M:%S " | syslog 経由でない場合のタイムスタンプフォーマット |
ログインプロセス | ||
login_dir | /var/run/dovecot-login | 認証プロセス用 UNIXソケットファイルの作成ディレクトリ |
login_chroot | yes | 認証プロセスを上記 login_dir へ chroot() させる |
POP3 ログインプロセス | ||
login_executable | /usr/libexec/dovecot/pop3-login | ログインプロセス実行プログラム |
login_user | dovecot | ログインプロセスの実行ユーザ。セキュリティ対策 |
login_process_size | 32 | ログインプロセス 1個あたりの最大制限サイズ (MB) |
login_process_per_connection | yes | 1ログイン毎にひとつのログインプロセスで扱う |
login_processes_count | 10 | 待機するログインプロセスの数。login_process_per_connection=yes の時は予備として待機する数となる |
login_max_processes_count | 128 | 一時に多数のログインが要求された時に、同時に存在できるログインプロセスの数。上記 login_process_count で足りない時には login_process_count x2, x2, ... と、要求が満たされるかこの上限値に達するまでプロセスが生成される。login_process_per_connection=yes でない時は無視される |
login_max_logging_users | 256 | 同時に存在できるログイン処理コネクションの数。この上限に達すると、最も古いコネクションから切断される |
メール読取りプロセス | ||
max_mail_processes | 1024 | 同時に存在できるメール読取プロセス数の上限 |
verbose_proctitle | no | ps の出力にログインユーザ名やクライアントIPなども表示 |
verbose_ssl | no | SSL接続に関してプロトコルレベルのエラーも表示 |
first_valid_uid | 500 | ログインを許可するユーザのUID下限 |
last_valid_uid | 0 | ログインを許可するユーザのUID上限 (0 で無制限) |
first_valid_gid | 500 | ログインを許可するユーザのGID下限 |
last_valid_gid | 0 | ログインを許可するユーザのGID上限 (0 で無制限) |
mail_extra_groups | 上記以外に許可する特別なUID | |
valid_chroot_dirs | /var/vmail | メール読み取りプロセスの chroot() を許可するディレクトリ基底 |
mail_chroot | 全てのユーザをひとつのディレクトリに chroot() する場合のパス | |
default_mail_env | maildir:/var/vmail%h/Maildir/ | メールボックスの位置を示す環境変数。%h は後述の auth_userdb から得られたホームディレクトリに置き換えられる。当実装では、アカウントのLDAPエントリから取得された homeDirectory 属性値が %h に入ることになる |
メールインデックスキャッシュ | ||
mail_cache_fields | MessagePart | メールインデックスファイルにキャッシュするメール属性 |
mail_never_cache_fields | 同、キャッシュしない属性 | |
client_workarounds | outlook-idle outlook-pop3-no-nuls | メールクライアントの癖への対策 |
mailbox_check_interval | 0 | 新着メールをクライアントに通知する間隔 (ローカルのみ) |
mailbox_idle_check_interval | 30 | 同、IDLE コマンド時 |
mail_full_filesystem_access | no | ファイルシステムとしての操作をクライアントに許可するか |
mail_max_flag_length | 50 | (説明割愛。デフォルト) |
mail_save_crlf | no | メール全てを CRLF改行にして保存するか |
mail_read_mmaped | no | メールファイルの読み取りに使用するコールの種類。yes は mmap(), no なら read() |
maildir_stat_dirs | no | LIST コマンドで Maildir下のドットで始まるファイルを返す。yes では毎回ディレクトリを stat() してディレクトリリストを返す |
maildir_copy_with_hardlinks | yes | 新着メール (new/) を既読メールフォルダ (cur/) へ移動する際などにハードリンクコールを使用して速度アップ |
maildir_check_content_changes | no | 個々のメールファイルが Dovecot以外のプログラムによって変更/改変されていないか確認し、変更されていたら新着メールとして扱うか |
mbox_locks | fcntl | (mbox専用) |
mbox_read_dotlock | no | (mbox専用) |
mbox_lock_timeout | 300 | (mbox専用) |
mbox_dotlock_change_timeout | 30 | (mbox専用) |
umask | 0077 | メールファイル/ディレクトリ操作時の umask |
プロセス | ||
mail_drop_priv_before_exec | no | メールプロセス実行時に root権限を剥奪するか |
IMAP プロセス | ||
imap_executable | /usr/libexec/dovecot/imap | IMAPプロセス実行ファイル |
POP3 プロセス | ||
pop3_executable | /usr/libexec/dovecot/pop3 | POP3プロセス実行ファイル |
pop3_process_size | 256 | POP3プロセスの最大サイズ (MB) |
pop3_use_modules | no | ローダブル拡張モジュールを使用するか |
認証プロセス | ||
auth = default | 認証プロセス名。次に auth=xxx が現れるまでがひとつのプロセス定義となる | |
auth_mechanisms | plain | クライアントと遣り取りする認証の方式。複数の候補を有効にする時にはスペース区切りで連ねる |
auth_realms | SASL認証のレルムのリスト (スペース区切り) | |
auth_default_realm | 平文ログインの場合: @ 以降のないユーザ名でログインしようとした場合にデフォルトで補完する @domain.tld。 SASL認証時: デフォルトのレルム |
|
auth_passdb | ldap /etc/dovecot.d/ldapref.conf | パスワード取得先としての LDAP参照定義 |
auth_userdb | ldap /etc/dovecot.d/ldapref.conf | アカウント情報取得先としての LDAP参照定義 |
auth_executable | /usr/libexec/dovecot/dovecot-auth | 認証プロセス実行プログラム |
auth_process_size | 256 | 認証プロセスの最大サイズ (MB) |
auth_user | dovecotauth | 認証プロセスの実行ユーザ。セキュリティ対策 |
auth_chroot | 認証プロセスを chroot() するディレクトリ。chroot() すると LDAP参照が成り立たないのでヌル(無効) | |
auth_count | 1 | 生成する認証プロセスの数 |
auth_username_chars | abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 01234567890.-_@ |
ログイン名に使用できる文字。LDAPインジェクション避け |
auth_anonymous_username | anonymous | (説明割愛。SASL認証用) |
auth_verbose | no | ログに認証プロセスの詳しいログを出力するか |
auth_debug | no | 上記にさらに詳しい出力を加えるか |
まず、今後補助設定ファイルが増えることを見込んで、補助設定ファイル用のサブディレクトリ /etc/dovecot.d/ を作成する (root:root 755)。その配下に LDAP 参照定義ファイル ldapref.conf (ファイル名は任意) を以下の要領で作成する。
設定サンプル: ldapref.conf
hosts = localhost dn = cn=mailadmin,ou=mail,o=hoge,dc=cxm dnpass = password ldap_version = 3 base = ou=mail,o=hoge,dc=cxm deref = never scope = onelevel # auth_passdb configuration. pass_attrs = mail,userPassword pass_filter = (&(objectClass=inetOrgPerson)(mail=%u)(!(accountStatus=disabled))) default_pass_scheme = PLAIN-MD5 # auth_userdb configuration. user_attrs = mail,homeDirectory user_filter = (&(objectClass=inetOrgPerson)(mail=%u)(!(accountStatus=disabled))) user_global_uid = 1025 user_global_gid = 1025
ログイン認証用の参照定義。
ユーザのメールボックスを特定するための参照定義。
このファイルには LDAP データ読み取り専用ユーザのパスワードが書かれているので、一般の UNIXユーザに読めないよう、パーミッションは必ず root:dovecotauth の 640 にしておかなければいけない。
root# chkconfig dovecot on root# service dovecot start
ローカル上や別のマシン上から、バーチャルメールアカウントの例えば penguin@hoge.cxm で POP3 ログインしてメールを読んでみる。テストコマンドは Qmail のページの「動作テストのためのコマンド」でいろいろと紹介している。