Dovecot

提供: ArchWiki
2014年12月26日 (金) 02:12時点におけるKusakata (トーク | 投稿記録)による版 (→‎小技)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

この記事では個人やスモールオフィスでの利用に適したメールサーバーの設定方法について記述しています。

Dovecot は Linux/Unix ライクなシステム向けのオープンソースの IMAPPOP3 サーバーで、セキュリティを主眼に置いて書かれています。Dovecot は Timo Sirainen によって開発され、2002年7月に初めてリリースされました。Dovecot は第一に軽量で高速、設定しやすいオープンソースのメールサーバーを目指しています。詳しい情報は、公式の Dovecot Wiki を見て下さい。

インストール

公式リポジトリからパッケージ dovecotpamインストールしてください。

設定

前提

  • Dovecot によるメールアカウントはそれぞれ、サーバーに定義するローカルのユーザーアカウントを持ちます。
  • サーバーはローカルのユーザーデータベース (/etc/passwd) ではなく PAM を使ってユーザーを認証します。
  • 認証パスワードの暗号化には SSL が使われます。
  • 一般的な Maildir フォーマットを使ってユーザーのホームディレクトリにメールを保存します。
  • MDA はあらかじめローカルユーザーにメールを配達するように設定されています。

SSL 証明書の作成

dovecot パッケージにはサーバーの SSL 証明書を生成するためのスクリプトが含まれています。

  • サンプルファイルから設定ファイルをコピーしてください: # cp /etc/ssl/dovecot-openssl.cnf{.sample,}
  • /etc/ssl/dovecot-openssl.cnf を編集して証明書を設定してください。
  • # /usr/lib/dovecot/mkcert.sh を実行すれば証明書が生成されます。

証明書・キーのペアは /etc/ssl/certs/dovecot.pem/etc/ssl/private/dovecot.pem として作成されます。

証明書を変更した時は mv /etc/ssl/certs/dovecot.pem /etc/ca-certificates/trust-source/anchors/dovecot.crt# trust extract-compat を実行してください。

PAM 認証

  • dovecot の PAM を設定するには、以下の内容で /etc/pam.d/dovecot を作成してください:
/etc/pam.d/dovecot
auth    required        pam_unix.so nullok
account required        pam_unix.so 

Dovecot の設定

  • /usr/share/doc/dovecot/example-config から /etc/dovecot に dovecot.conf と conf.d/* 設定ファイルをコピーしてください:
# cp /usr/share/doc/dovecot/example-config/dovecot.conf /etc/dovecot
# cp -r /usr/share/doc/dovecot/example-config/conf.d /etc/dovecot

ほとんどのシステムではデフォルト設定で問題ありませんが、設定ファイルを読んで利用できるオプションを確認してください。詳しい説明は クイック設定ガイドdovecot configuration を見て下さい。

デフォルトで dovecot はシステムで使われているメールストレージシステムを検出しようとします。Maildir フォーマットを使うには /etc/dovecot/conf.d/10-mail.conf を編集して mail_location = maildir:~/Maildir を設定してください。

Sieve

Sieve はメールサーバーのメールのフィルターを作成するのに使うことができるプログラミング言語です。

  • pigeonhole をインストールしてください
  • dovecot.conf で "sieve" を "protocols" に追加してください
protocols = imap pop3 sieve
  • 80-sieve.conf を追加してください
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}

service managesieve {
}

protocol sieve {
}
  • "protocol lda" セクションの "mail_plugins" に "sieve" を追加してください
protocol lda {
  mail_plugins = sieve
}
  • "plugin" セクションに sieve の保存場所を指定してください:
plugin {
  sieve=/var/mail/%u/dovecot.sieve
  sieve_dir=/var/mail/%u/sieve
}
ノート: 最近では LDA の代わりに LMTP を使うことが推奨されていますが、小さなメールサーバーに Dovecot LDA を使うことは依然として可能です。詳細は Dovecot Wiki にあります。
  • MTA が配送に dovecot を使うようにしてください。例えば: postfix の main.cf や dovecot-lda:
 mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"

サーバーを起動する

標準の systemd を使って dovecot.service デーモンを操作してください。

# systemctl start dovecot.service

ブート時に起動させるには

# systemctl enable dovecot.service

小技

デフォルトではないハッシュ関数を使ってハッシュを生成する。

doveadm pw -s SHA512-CRYPT -p "superpassword"

データベースのカラムが十分大きいことを確認してください (you might not get a warning..)

dovecot-sql.conf ファイルにパスワードの形式を設定します:

default_pass_scheme = SHA512-CRYPT