「Dovecot」の版間の差分
(同期) |
|||
21行目: | 21行目: | ||
* Dovecot によるメールアカウントはそれぞれ、サーバーに定義するローカルのユーザーアカウントを持ちます。 |
* Dovecot によるメールアカウントはそれぞれ、サーバーに定義するローカルのユーザーアカウントを持ちます。 |
||
− | * サーバーはローカルのユーザーデータベース (/etc/passwd) ではなく [[ |
+ | * サーバーはローカルのユーザーデータベース (/etc/passwd) ではなく [[PAM]] を使ってユーザーを認証します。 |
* 認証パスワードの暗号化には [[Wikipedia:ja:Transport_Layer_Security|SSL]] が使われます。 |
* 認証パスワードの暗号化には [[Wikipedia:ja:Transport_Layer_Security|SSL]] が使われます。 |
||
* 一般的な [[Wikipedia:ja:Maildir|Maildir]] フォーマットを使ってユーザーのホームディレクトリにメールを保存します。 |
* 一般的な [[Wikipedia:ja:Maildir|Maildir]] フォーマットを使ってユーザーのホームディレクトリにメールを保存します。 |
||
46行目: | 46行目: | ||
account required pam_unix.so |
account required pam_unix.so |
||
}} |
}} |
||
+ | |||
+ | ===PAM 認証と LDAP=== |
||
+ | |||
+ | * [[OpenLDAP]] サーバーを使って認証している場合、[[LDAP 認証]]に書かれているように先に LDAP ユーザーでログインできることを確認してください。それから、{{ic|/etc/pam.d/dovecot}} に以下を記述します。エントリの順番には意味があるので注意してください: |
||
+ | {{hc|/etc/pam.d/dovecot|2= |
||
+ | 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 とシステムユーザーの両方がメールボックスを持つことになります。 |
||
+ | |||
+ | * {{ic|/etc/dovecot/conf.d/auth-system.conf}} を編集して {{ic|passdb}} ディレクティブを以下のように変更: |
||
+ | <pre> |
||
+ | passdb { |
||
+ | driver = pam |
||
+ | args = session=yes dovecot |
||
+ | } |
||
+ | </pre> |
||
+ | {{ic|pam_mkhomedir.so}} モジュールを使用して {{ic|passdb}} ディレクティブに {{ic|session}} を追加することで、LDAP ユーザーが最初にログインしたときにホームディレクトリを自動的に作成します。 |
||
===Dovecot の設定=== |
===Dovecot の設定=== |
||
− | * {{ic|/usr/share/doc/dovecot/example-config}} から {{ic|/etc/dovecot}} に dovecot.conf と conf.d/* 設定ファイルをコピーしてください: |
+ | * {{ic|/usr/share/doc/dovecot/example-config}} から {{ic|/etc/dovecot}} に {{ic|dovecot.conf}} と {{ic|conf.d/*}} 設定ファイルをコピーしてください: |
{{bc| |
{{bc| |
||
# cp /usr/share/doc/dovecot/example-config/dovecot.conf /etc/dovecot |
# cp /usr/share/doc/dovecot/example-config/dovecot.conf /etc/dovecot |
||
61行目: | 83行目: | ||
===Sieve=== |
===Sieve=== |
||
− | [ |
+ | [[wikipedia:Sieve (mail filtering language)|Sieve]] はメールサーバーのメールのフィルターを作成するのに使うことができるプログラミング言語です。 |
* {{Pkg|pigeonhole}} をインストールしてください |
* {{Pkg|pigeonhole}} をインストールしてください |
2016年5月29日 (日) 21:01時点における版
この記事では個人やスモールオフィスでの利用に適したメールサーバーの設定方法について記述しています。
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 /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
として作成されます。
証明書を変更した時は 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 はメールサーバーのメールのフィルターを作成するのに使うことができるプログラミング言語です。
- pigeonhole をインストールしてください
- dovecot.conf で "sieve" を "protocols" に追加してください
protocols = imap pop3 sieve
/etc/dovecot/conf.d/
に 80-sieve.conf を追加してください
service managesieve-login { inet_listener sieve { port = 4190 } } service managesieve { } protocol sieve { }
/etc/dovecot/conf.d/15-lda.conf
の "protocol lda" セクションの "mail_plugins" に "sieve" を追加してください
protocol lda { mail_plugins = sieve }
/etc/dovecot/conf.d/90-plugin.conf
の "plugin" セクションに sieve の保存場所を指定してください:
plugin { sieve=/var/mail/%u/dovecot.sieve sieve_dir=/var/mail/%u/sieve }
- 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