Tailscale 네트워크에서의 Postgres HBA 설정
postgres on zfs 구성에 이어, 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 sshdpostgresql.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 범위입니다. 자세한 내용은 여기에서 확인하세요.
글을 무작위로 읽기