9.6. 認証されたローカルユーザーへのアクセスを制限することによる PostgreSQL のセキュリティー保護
PostgreSQL は、オブジェクトリレーショナルデータベース管理システム (DBMS) です。Red Hat Enterprise Linux では、PostgreSQL は postgresql-server
パッケージによって提供されます。
クライアント認証を設定して、攻撃のリスクを減らすことができます。データベースクラスターのデータディレクトリーに保存されている pg_hba.conf
設定ファイルは、クライアント認証を制御します。手順に従って、ホストベースの認証用に PostgreSQL を設定します。
手順
PostgreSQL をインストールします。
# yum install postgresql-server
次のいずれかのオプションを使用して、データベースストレージ領域を初期化します。
initdb
ユーティリティーの使用:$ initdb -D /home/postgresql/db1/
-D
オプションを指定したinitdb
コマンドを実行すると、指定したディレクトリーがまだ存在しない場合は作成します (例:/home/postgresql/db1/
)。このディレクトリーには、データベースに保存されているすべてのデータと、クライアント認証設定ファイルが含まれています。postgresql-setup
スクリプトの使用:$ postgresql-setup --initdb
デフォルトでは、スクリプトは
/var/lib/pgsql/data/
ディレクトリーを使用します。このスクリプトは、基本的なデータベースクラスター管理でシステム管理者を支援します。
認証されたローカルユーザーが自分のユーザー名でデータベースにアクセスできるようにするには、
pg_hba.conf
ファイルの以下の行を変更します。local all all trust
これは、データベースユーザーを作成し、ローカルユーザーを作成しないレイヤー型アプリケーションを使用する場合に、問題となることがあります。システム上のすべてのユーザー名を明示的に制御しない場合は、
pg_hba.conf
ファイルからlocal
の行を削除してください。データベースを再起動して、変更を適用します。
# systemctl restart postgresql
前のコマンドはデータベースを更新し、設定ファイルの構文も検証します。