1.3.4. Dovecot 認証バックエンドとして MariaDB SQL データベースを使用する


Dovecot は、MariaDB データベースからアカウントとパスワードを読み取り、これを使用して、ユーザーが IMAP または POP3 サービスにログインする場合、ユーザーを認証できます。

MariaDB 認証方式の利点は以下のとおりです。

  • 管理者は、データベースでユーザーを集中管理できます。
  • ユーザーはサーバー上でローカルにアクセスできません。

前提条件

  • Dovecot がインストールされている。
  • 仮想ユーザー機能が設定されています。
  • MariaDB サーバーへの接続では、TLS 暗号化がサポートされます。
  • dovecotDB データベースは MariaDB に存在し、users テーブルには、少なくとも username および password 列が含まれています。
  • password 列には、Dovecot がサポートするスキームで暗号化されたパスワードが含まれています。
  • パスワードは、同じスキームを使用するか、{pw-storage-scheme} 接頭辞を使用します。
  • MariaDB ユーザー dovecot は、dovecotDB データベースの users テーブルに対する読み取り権限を持っています。
  • MariaDB サーバーの TLS 証明書を発行した認証局 (CA) の証明書は、Dovecot サーバーの /etc/pki/tls/certs/ca.crt ファイルに保存されます。
  • FIPS モードが有効になっている場合、この Dovecot サーバーは Extended Master Secret (EMS) 拡張機能をサポートするか、TLS 1.3 を使用します。EMS を使用しない TLS 1.2 接続は失敗します。詳細は、Red Hat ナレッジベースソリューション TLS extension "Extended Master Secret" enforced を参照してください。

手順

  1. dovecot-mysql パッケージをインストールします。

    # dnf install dovecot-mysql
  2. /etc/dovecot/conf.d/10-auth.conf ファイルで認証バックエンドを設定します。

    1. 不要な auth-*.conf.ext 認証バックエンド設定ファイルの include ステートメントをコメントアウトします。次に例を示します。

      #!include auth-system.conf.ext
    2. 次の行をコメント解除して、SQL 認証を有効にします。

      !include auth-sql.conf.ext
  3. /etc/dovecot/conf.d/auth-sql.conf.ext ファイルを編集し、override_fields パラメーターを userdb セクションに次のように追加します。

    userdb {
      driver = sql
      args = /etc/dovecot/dovecot-sql.conf.ext
      override_fields = uid=vmail gid=vmail home=/var/mail/%n/
    }

    固定値のため、Dovecot はこれらの設定を SQL サーバーからクエリーしません。

  4. 次の設定で /etc/dovecot/dovecot-sql.conf.ext ファイルを作成します。

    driver = mysql**
    connect = host=mariadb_srv.example.com dbname=dovecotDB user=dovecot password=_<dovecotPW>_ ssl_ca=/etc/pki/tls/certs/ca.crt
    default_pass_scheme = SHA512-CRYPT
    user_query = SELECT username FROM users WHERE username='%u';
    password_query = SELECT username AS user, password FROM users WHERE username='%u';
    iterate_query = SELECT username FROM users;

    データベースサーバーに対して TLS 暗号化を使用するには、ssl_ca オプションに MariaDB サーバー証明書を発行した CA の証明書のパスを設定します。証明書の検証を機能させるには、MariaDB サーバーのホスト名が TLS 証明書で使用されているホスト名と一致する必要があります。

    データベースのパスワード値に {<pw-storage-scheme>} 接頭辞が含まれている場合は、default_pass_scheme 設定を省略できます。

    ファイル内のクエリーは、次のように設定する必要があります。

    • user_query パラメーターの場合、クエリーは Dovecot ユーザーのユーザー名を返す必要があります。また、クエリーは 1 つの結果のみを返す必要があります。
    • password_query パラメーターの場合、クエリーはユーザー名とパスワードを返す必要があり、Dovecot は user および password 変数でこれらの値を使用する必要があります。したがって、データベースが異なる列名を使用している場合は、AS SQL コマンドを使用して、結果の列の名前を変更してください。
    • iterate_query パラメーターの場合、クエリーはすべてのユーザーのリストを返す必要があります。
  5. /etc/dovecot/dovecot-sql.conf.ext ファイルにセキュアな権限を設定します。

    # chown root:root /etc/dovecot/dovecot-sql.conf.ext
    # chmod 600 /etc/dovecot/dovecot-sql.conf.ext

次のステップ

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る