Postgres HBA with a Tailscale network

Ellie Huxtable

TailscaleネットワークでPostgresのHBAを設定する

ZFS上のpostgresのセットアップに続いて、PostgreSQLレプリカがプライマリに安全に接続できるよう、認証を設定する必要がありました。

ここでの制約は、クラウドのプライベートネットワークを使っていないため、何らかのVPNが必要なことです。私はTailscaleを使っています。これは要するに、簡単に使えるWireGuardです。

ファイアウォール

まず、Tailscaleのドキュメントに従います。自分自身を締め出さないように気を付けてください! 私は2FA付きのTailscale SSHも使っています。

ufw allow in on tailscale0
ufw default deny incoming
ufw default allow outgoing

ufw reload

systemctl restart sshd

postgresql.conf

次に、postgresがすべてのアドレスで待ち受けるよう指定する必要があります。postgresの設定に次を記述します。

listen_addresses = '*'

tailscale0やtailnetのCIDR、あるいは……何かしら別のものを指定できればよかったのですが。残念ながらできません。そこまで柔軟ではありませんが、少なくともファイアウォールとhbaで制限できます。ほかの手順を飛ばさないでください!

pg_hba

あとはログインを許可するよう、pg_hba.confを設定するだけです!

host    all             all             100.64.0.0/10           scram-sha-256

100.64.0.0/10は、Tailscaleで使われるCIDR範囲です。詳細はこちらをご覧ください。

原文は Ellie Huxtable により に公開されました。

この記事は「gpt-5.6-terra」を使用して翻訳されました。