8.6. 認証されたローカルユーザーだけにアクセスを制限して PostgreSQL を保護する
認証されたローカルユーザーだけにアクセスを制限するようにクライアント認証を設定することで、PostgreSQL データベースを保護します。これにより、不正アクセスや攻撃のリスクが軽減されます。
PostgreSQL は、オブジェクトリレーショナルデータベース管理システム (DBMS) です。Red Hat Enterprise Linux では、PostgreSQL は postgresql-server パッケージによって提供されます。
クライアント認証の設定は、pg_hba.conf 設定ファイルで指定します。このファイルはデータベースクラスターのデータディレクトリーに保存されています。次の手順では、ホストベースの認証用に PostgreSQL を設定する方法を詳しく説明します。
手順
PostgreSQL をインストールします。
# dnf 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前のコマンドはデータベースを更新し、設定ファイルの構文も検証します。