PostgreSQLインストールメモ その3 ~CentOS編②~

PostgreSQLインストールメモ その2 ~CentOS編①~ の続き。インストールメモとは名ばかりで、ここでの目的は外部(ホストPC)からPostgreSQLのDBへアクセスすることである。

参考記事
PostgreSQLの認証とアクセス権限の制御
PostgreSQL #2 PostgreSQLに外部から接続する
postgresqlを他ホストからもつなげるようにする

また、本記事はブリッジアダプター設定下であること前提としているが、NATネットワークの場合を下記記事で扱っている。
SSHトンネリングによる外部DB接続


ファイヤーウォール設定

ファイヤーウォールの設定状況を下記コマンドで確認することができるらしい。

# firewall-cmd --list-services --zone=public --permanent

>cockpit dhcpv6-client ssh

ファイヤーウォールの許可リストにPostgreSQLを加えてやらなければ今回仮想環境に用意したPostgreSQLサーバに外部から接続することができないらしいので、下記コマンドを実行する。

# firewall-cmd --add-service=postgresql --zone=public --permanent
# firewall-cmd --reload

再度ファイヤーウォール設定状況を確認すると "postgresql" が追加されたことが分かる。

# firewall-cmd --list-services --zone=public --permanent

>cockpit dhcpv6-client postgresql ssh


設定ファイル編集

/var/lib/pgsql/13/data 下の2ファイルを編集する。
・postgresql.conf
・pg_hba.conf


postgresql.conf

/var/lib/pgsql/13/data/postgresql.conf の項目 "listen_addresses" には接続を受け付けるIPアドレスを指定することができる。ここでは任意のアドレスが対象となるように設定する。
※特定のIPアドレスを指定することは可能だが複数IPアドレスをするにはカンマ区切りでの指定が必要で、範囲指定をすることはできない。

listen_addresses = '*' # what IP address(es) to listen on;


pg_hba.conf

/var/lib/pgsql/13/data/pg_hba.conf の編集を行う。どのような接続方式でどのデーベースに誰が接続できるかを示すファイルらしい。
この記事の解説がめちゃくちゃ丁寧で各フィールドの意味と指定オプションについて詳細に記載してくれている。ちなみにpg_hba.confの中にもマニュアルが書いてある。
PostgreSQLの認証とアクセス権限の制御

以下を追記した(既存の設定を上書きしない!!!!!!)
意味としては
・外部ホストからの接続に対する制御
・すべてのデータベースを対象
・すべてのユーザを対象
・DBに接続するクライアントIPアドレスの範囲を192.168.11.1/24に設定
・md5暗号化によるパスワード認証

host all all 192.168.11.1/24 md5

IPアドレス部については以下を参考にしながら設定した。
サブネットマスクとは?
IPアドレス サブネットマスク 早見表

最後に再起動して設定を反映させておく。

#systemctl restart postgresql-13.service


ホストPCからの接続

psqlとA5M2を利用してスーパーユーザでの接続を試みる。上手くいく。
※サーバー名centosbrd01はホストPCのhostsファイルで指定している名前。

画像3

画像1

画像2





この記事が気に入ったらサポートをしてみませんか?