この両者の違いはpostgresql.confのIPアドレスなどの許容する範囲はpg_hba.confの許容するIPアドレスよりも大きいもしくは同一でないといけないという認識でよろしいでしょうか?
ちがいます。
postgresql.conf の listen_addresses に書くのはデータベースサーバが listen するアドレスです。普通は
localhost: サーバ内のアクセスのみを受け付ける
*: 外部からのアクセスも受け付ける(受信したIPアドレスを問わない)
くらいしかないのですが、IPアドレスを複数持つサーバでどれか一つだけでしか受けれいない場合は、 そのアドレスだけで listen するように構成するかもしれません。たとえば、PostgreSQL サーバに複数のNICがあり、 192.168.10.100と 192.168.20.101 2つのアドレスを持っていて、192.168.10.100のみでサービスを受け付ける場合は、
192.168.10.100,localhost
と書くことになるでしょう。
一方で pg_hba.conf の host で書く場合のアドレスはデータベースにアクセスするクライアント側の IPアドレスです。マニュアルを見ると、以下のように記載されています。
典型的なIPv4アドレス範囲の例は、単一のホストでは172.20.143.89/32、小規模ネットワークでは172.20.143.0/24、大規模ネットワークでは10.6.0.0/16のようなものです。 IPv6アドレスの範囲は、単一のホストでは::1/128(この場合はIPv6ループバックアドレス)、小規模ネットワークではfe80::7a31:c1ff:0000:0000/96のようなものです。 0.0.0.0/0は全てのIPv4アドレスを意味します。
おそらく、 localhost が両方に出てくるので、混乱されているのだと思いますが、サーバ内のプログラムから接続する場合、クライアント側のIPアドレスもサーバ側のIPアドレスも localhost (127.0.0.1)になります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。