「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==== |
||
− | * {{Pkg|pigeonhole}} をインストールしてください |
||
+ | |||
− | * dovecot.conf で "sieve" を "protocols" に追加してください |
||
+ | * {{Pkg|pigeonhole}} をインストールしてください。 |
||
− | <pre> |
||
+ | * {{ic|sieve}} を {{ic|mail_plugins}} に追加してください: |
||
− | protocols = imap pop3 sieve |
||
+ | ** {{ic|<nowiki>/etc/dovecot/conf.d/15-lda.conf</nowiki>}}{{bc|<nowiki> |
||
− | </pre> |
||
+ | protocol lda { |
||
− | * {{ic|/etc/dovecot/conf.d/}} に 80-sieve.conf を追加してください |
||
+ | mail_plugins = $mail_plugins sieve |
||
− | <pre> |
||
− | service managesieve-login { |
||
− | inet_listener sieve { |
||
− | port = 4190 |
||
− | } |
||
} |
} |
||
+ | </nowiki>}} |
||
+ | ** {{ic|/etc/dovecot/conf.d/20-lmtp.conf}}{{bc|<nowiki> |
||
+ | protocol lmtp { |
||
+ | mail_plugins = $mail_plugins sieve |
||
+ | } |
||
+ | </nowiki>}} |
||
+ | {{Note|最近は LDA のかわりに LMTP を使用することが推奨されます。ただし小規模なメールサーバー用に Dovecot LDA はまだ使い続けられます。詳しくは [http://wiki2.dovecot.org/LMTP Dovecot Wiki] を参照。}} |
||
+ | * 任意で {{ic|plugin}} セクションに設定を追加してください。設定オプションとデフォルト値については [http://wiki2.dovecot.org/Pigeonhole/Sieve/Configuration Sieve Interpreter Documentation] を見てください。例: {{bc|<nowiki> |
||
− | service managesieve { |
||
+ | plugin { |
||
+ | sieve = file:~/sieve;active=~/.dovecot.sieve |
||
} |
} |
||
+ | </nowiki>}} |
||
+ | =====SpamAssassin - スパムを "Junk" フォルダに移動===== |
||
− | protocol sieve { |
||
+ | * スパムテスト設定を追加: |
||
+ | {{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"; |
||
− | protocol lda { |
||
+ | require "fileinto"; |
||
− | mail_plugins = sieve |
||
+ | 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 |
||
− | plugin { |
||
+ | </nowiki>}} {{ic|move_to_spam_folder.sieve}} と {{ic|move_to_spam_folder.svbin}} ファイルが誰からでも読み込めるように権限が設定されているか確認してください。 |
||
− | sieve=/var/mail/%u/dovecot.sieve |
||
+ | |||
− | sieve_dir=/var/mail/%u/sieve |
||
+ | ====ManageSieve Server==== |
||
+ | サーバー上の Sieve スクリプトをリモートで管理できる ManageSieve プロトコルが実装されています。 |
||
+ | |||
+ | * 上記の '''Sieve Interpreter Plugin''' の手順に従ってください。 |
||
+ | * {{ic|dovecot.conf}} の {{ic|protocols}} に {{ic|sieve}} を追加: {{bc|<nowiki> |
||
+ | protocols = imap pop3 sieve |
||
+ | </nowiki>}} |
||
+ | * {{ic|/etc/dovecot/conf.d/20-managesieve.conf}} を追加: {{bc|<nowiki> |
||
+ | service managesieve-login { |
||
} |
} |
||
− | </pre> |
||
+ | service managesieve { |
||
− | {{Note|最近では LDA の代わりに LMTP を使うことが推奨されていますが、小さなメールサーバーに Dovecot LDA を使うことは依然として可能です。詳細は [http://wiki2.dovecot.org/LMTP Dovecot Wiki] にあります。}} |
||
+ | } |
||
+ | 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.conf
protocol lda { mail_plugins = $mail_plugins sieve }
/etc/dovecot/conf.d/20-lmtp.conf
protocol 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