「Dovecot」の版間の差分
関連記事 |
同期 |
||
| 4行目: | 4行目: | ||
{{Related|Postfix}} |
{{Related|Postfix}} |
||
{{Related4|Courier MTA}} |
{{Related4|Courier MTA}} |
||
{{ |
{{Related|OpenSMTPD}} |
||
{{Related|Fail2ban}} |
{{Related|Fail2ban}} |
||
{{Related|SOGo}} |
|||
{{Related|仮想ユーザーメールシステム}} |
{{Related|仮想ユーザーメールシステム}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
| 30行目: | 31行目: | ||
{{Pkg|dovecot}} パッケージにはサーバーの SSL 証明書を生成するためのスクリプトが含まれています。 |
{{Pkg|dovecot}} パッケージにはサーバーの SSL 証明書を生成するためのスクリプトが含まれています。 |
||
* サンプルファイルから設定ファイルをコピーしてください: {{ic|# cp /etc/ssl/dovecot-openssl.cnf |
* サンプルファイルから設定ファイルをコピーしてください: {{ic|# cp /usr/share/doc/dovecot/dovecot-openssl.cnf /etc/ssl/dovecot-openssl.cnf}}.。 |
||
* {{ic|/etc/ssl/dovecot-openssl.cnf}} を編集して証明書を設定してください。 |
* {{ic|/etc/ssl/dovecot-openssl.cnf}} を編集して証明書を設定してください。 |
||
| 85行目: | 86行目: | ||
[[wikipedia:Sieve (mail filtering language)|Sieve]] はメールサーバーのメールのフィルターを作成するのに使うことができるプログラミング言語です。 |
[[wikipedia:Sieve (mail filtering language)|Sieve]] はメールサーバーのメールのフィルターを作成するのに使うことができるプログラミング言語です。 |
||
====Sieve Interpreter Plugin==== |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
<pre> |
|||
| ⚫ | |||
| ⚫ | |||
** {{ic|<nowiki>/etc/dovecot/conf.d/15-lda.conf</nowiki>}}{{bc|<nowiki> |
|||
</pre> |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
<pre> |
|||
| ⚫ | |||
inet_listener sieve { |
|||
port = 4190 |
|||
} |
|||
} |
} |
||
</nowiki>}} |
|||
** {{ic|/etc/dovecot/conf.d/20-lmtp.conf}}{{bc|<nowiki> |
|||
| ⚫ | |||
mail_plugins = $mail_plugins sieve |
|||
} |
|||
</nowiki>}} |
|||
| ⚫ | |||
* 任意で {{ic|plugin}} セクションに設定を追加してください。設定オプションとデフォルト値については [http://wiki2.dovecot.org/Pigeonhole/Sieve/Configuration Sieve Interpreter Documentation] を見てください。例: {{bc|<nowiki> |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
} |
} |
||
</nowiki>}} |
|||
=====SpamAssassin - スパムを "Junk" フォルダに移動===== |
|||
| ⚫ | |||
* スパムテスト設定を追加: |
|||
{{hc|/etc/dovecot/conf.d/90-sieve.conf|<nowiki> |
|||
plugin { |
|||
sieve_extensions = +spamtest +spamtestplus |
|||
sieve_spamtest_status_type = score |
|||
sieve_spamtest_status_header = \ |
|||
X-Spam_score: (-?[[:digit:]]+\.[[:digit:]]).* |
|||
sieve_spamtest_max_value = 5.0 |
|||
sieve_before = /var/lib/dovecot/sieve/global_sieves/move_to_spam_folder.sieve |
|||
} |
} |
||
</nowiki>}} {{Note|上記は "X-Spam_score" (Exim のデフォルト設定におけるスパムのヘッダー形式) をテストします。ヘッダーは多少異なる可能性があります。例: "X-Spam-Score"。}} |
|||
</pre> |
|||
* sieve スクリプトを作成: |
|||
* {{ic|/etc/dovecot/conf.d/15-lda.conf}} の "protocol lda" セクションの "mail_plugins" に "sieve" を追加してください |
|||
{{hc|/var/lib/dovecot/sieve/global_sieves/move_to_spam_folder.sieve|<nowiki> |
|||
<pre> |
|||
require "spamtestplus"; |
|||
| ⚫ | |||
require "fileinto"; |
|||
| ⚫ | |||
require "relational"; |
|||
require "comparator-i;ascii-numeric"; |
|||
if spamtest :value "ge" :comparator "i;ascii-numeric" "5" { |
|||
fileinto "Junk"; |
|||
} |
} |
||
</ |
</nowiki>}} |
||
* {{ic|/etc/dovecot/conf.d/90-plugin.conf}} の "plugin" セクションに sieve の保存場所を指定してください: |
|||
* sieve をコンパイル: {{bc|<nowiki> |
|||
<pre> |
|||
sievec /var/lib/dovecot/sieve/global_sieves |
|||
| ⚫ | |||
</nowiki>}} {{ic|move_to_spam_folder.sieve}} と {{ic|move_to_spam_folder.svbin}} ファイルが誰からでも読み込めるように権限が設定されているか確認してください。 |
|||
| ⚫ | |||
sieve_dir=/var/mail/%u/sieve |
|||
====ManageSieve Server==== |
|||
サーバー上の Sieve スクリプトをリモートで管理できる ManageSieve プロトコルが実装されています。 |
|||
* 上記の '''Sieve Interpreter Plugin''' の手順に従ってください。 |
|||
* {{ic|dovecot.conf}} の {{ic|protocols}} に {{ic|sieve}} を追加: {{bc|<nowiki> |
|||
| ⚫ | |||
</nowiki>}} |
|||
| ⚫ | |||
| ⚫ | |||
} |
} |
||
</pre> |
|||
| ⚫ | |||
| ⚫ | |||
} |
|||
protocol sieve { |
|||
* MTA が配送に dovecot を使うようにしてください。例えば: postfix の main.cf や dovecot-lda: |
|||
} |
|||
mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT" |
|||
</nowiki>}} |
|||
* {{ic|dovecot}} を再起動してください。managesieve デーモンはデフォルトではポート 4190 を使用します。 |
|||
==サーバーを起動する== |
==サーバーを起動する== |
||
2017年1月25日 (水) 22:16時点における版
この記事では個人やスモールオフィスでの利用に適したメールサーバーの設定方法について記述しています。
Dovecot は Linux/Unix ライクなシステム向けのオープンソースの IMAP と POP3 サーバーで、セキュリティを主眼に置いて書かれています。Dovecot は Timo Sirainen によって開発され、2002年7月に初めてリリースされました。Dovecot は第一に軽量で高速、設定しやすいオープンソースのメールサーバーを目指しています。詳しい情報は、公式の Dovecot Wiki を見て下さい。
インストール
公式リポジトリからパッケージ dovecot と pam をインストールしてください。
設定
前提
- Dovecot によるメールアカウントはそれぞれ、サーバーに定義するローカルのユーザーアカウントを持ちます。
- サーバーはローカルのユーザーデータベース (/etc/passwd) ではなく PAM を使ってユーザーを認証します。
- 認証パスワードの暗号化には SSL が使われます。
- 一般的な Maildir フォーマットを使ってユーザーのホームディレクトリにメールを保存します。
- MDA はあらかじめローカルユーザーにメールを配達するように設定されています。
SSL 証明書の作成
dovecot パッケージにはサーバーの SSL 証明書を生成するためのスクリプトが含まれています。
- サンプルファイルから設定ファイルをコピーしてください:
# cp /usr/share/doc/dovecot/dovecot-openssl.cnf /etc/ssl/dovecot-openssl.cnf.。 /etc/ssl/dovecot-openssl.cnfを編集して証明書を設定してください。
# /usr/lib/dovecot/mkcert.shを実行すれば証明書が生成されます。
証明書・キーのペアは /etc/ssl/certs/dovecot.pem と /etc/ssl/private/dovecot.pem として作成されます。
証明書を変更した時は cp /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
PAM 認証と LDAP
- OpenLDAP サーバーを使って認証している場合、LDAP 認証に書かれているように先に LDAP ユーザーでログインできることを確認してください。それから、
/etc/pam.d/dovecotに以下を記述します。エントリの順番には意味があるので注意してください:
/etc/pam.d/dovecot
auth sufficient pam_ldap.so auth required pam_unix.so nullok account sufficient pam_ldap.so account required pam_unix.so session required pam_mkhomedir.so skel=/etc/skel umask=0022 session sufficient pam_ldap.so
上記の設定の場合 LDAP とシステムユーザーの両方がメールボックスを持つことになります。
/etc/dovecot/conf.d/auth-system.confを編集してpassdbディレクティブを以下のように変更:
passdb {
driver = pam
args = session=yes dovecot
}
pam_mkhomedir.so モジュールを使用して passdb ディレクティブに session を追加することで、LDAP ユーザーが最初にログインしたときにホームディレクトリを自動的に作成します。
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 はメールサーバーのメールのフィルターを作成するのに使うことができるプログラミング言語です。
Sieve Interpreter Plugin
- pigeonhole をインストールしてください。
sieveをmail_pluginsに追加してください:/etc/dovecot/conf.d/15-lda.confprotocol lda { mail_plugins = $mail_plugins sieve }/etc/dovecot/conf.d/20-lmtp.confprotocol lmtp { mail_plugins = $mail_plugins sieve }
- 任意で
pluginセクションに設定を追加してください。設定オプションとデフォルト値については Sieve Interpreter Documentation を見てください。例:plugin { sieve = file:~/sieve;active=~/.dovecot.sieve }
SpamAssassin - スパムを "Junk" フォルダに移動
- スパムテスト設定を追加:
/etc/dovecot/conf.d/90-sieve.conf
plugin {
sieve_extensions = +spamtest +spamtestplus
sieve_spamtest_status_type = score
sieve_spamtest_status_header = \
X-Spam_score: (-?[[:digit:]]+\.[[:digit:]]).*
sieve_spamtest_max_value = 5.0
sieve_before = /var/lib/dovecot/sieve/global_sieves/move_to_spam_folder.sieve
}
- sieve スクリプトを作成:
/var/lib/dovecot/sieve/global_sieves/move_to_spam_folder.sieve
require "spamtestplus";
require "fileinto";
require "relational";
require "comparator-i;ascii-numeric";
if spamtest :value "ge" :comparator "i;ascii-numeric" "5" {
fileinto "Junk";
}
- sieve をコンパイル:
sievec /var/lib/dovecot/sieve/global_sieves
move_to_spam_folder.sieveとmove_to_spam_folder.svbinファイルが誰からでも読み込めるように権限が設定されているか確認してください。
ManageSieve Server
サーバー上の Sieve スクリプトをリモートで管理できる ManageSieve プロトコルが実装されています。
- 上記の Sieve Interpreter Plugin の手順に従ってください。
dovecot.confのprotocolsにsieveを追加:protocols = imap pop3 sieve
/etc/dovecot/conf.d/20-managesieve.confを追加:service managesieve-login { } service managesieve { } protocol sieve { }dovecotを再起動してください。managesieve デーモンはデフォルトではポート 4190 を使用します。
サーバーを起動する
標準の 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