# Dovecot (日本語)

関連記事

- Postfix
- Courier MTA
- OpenSMTPD
- Fail2ban

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

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` として作成されます。

### 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
    }

Note: 最近では 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"

Remember to make sure that the column in the database is large enough (you might not get a warning..)

Remember to set the password scheme in your dovecot-sql.conf file

    default_pass_scheme = SHA512-CRYPT

Category:

- Mail Server (日本語)