Red Hat Training

A Red Hat training course is available for RHEL 8

11.6. 認証されたローカルユーザーへのアクセスを制限することによる PostgreSQL のセキュリティー保護

PostgreSQL は、オブジェクトリレーショナルデータベース管理システム (DBMS) です。Red Hat Enterprise Linux では、PostgreSQL は postgresql-server パッケージによって提供されます。

クライアント認証を設定して、攻撃のリスクを減らすことができます。データベースクラスターのデータディレクトリーに保存されている pg_hba.conf 設定ファイルは、クライアント認証を制御します。手順に従って、ホストベースの認証用に PostgreSQL を設定します。

手順

  1. PostgreSQL をインストールします。

    # yum install postgresql-server
  2. 次のいずれかのオプションを使用して、データベースストレージ領域を初期化します。

    1. initdb ユーティリティーの使用:

      $ initdb -D /home/postgresql/db1/

      -D オプションを指定した initdb コマンドを実行すると、指定したディレクトリーがまだ存在しない場合は作成します (例: /home/postgresql/db1/)。このディレクトリーには、データベースに保存されているすべてのデータと、クライアント認証設定ファイルが含まれています。

    2. postgresql-setup スクリプトの使用:

      $ postgresql-setup --initdb

      デフォルトでは、スクリプトは /var/lib/pgsql/data/ ディレクトリーを使用します。このスクリプトは、基本的なデータベースクラスター管理でシステム管理者を支援します。

  3. 認証されたローカルユーザーが自分のユーザー名でデータベースにアクセスできるようにするには、pg_hba.conf ファイルの以下の行を変更します。

    local   all             all                                     trust

    これは、データベースユーザーを作成し、ローカルユーザーを作成しないレイヤー型アプリケーションを使用する場合に、問題となることがあります。システム上のすべてのユーザー名を明示的に制御しない場合は、pg_hba.conf ファイルから local の行を削除してください。

  4. データベースを再起動して、変更を適用します。

    # systemctl restart postgresql

    前のコマンドはデータベースを更新し、設定ファイルの構文も検証します。