PostgreSQL – Accept Subdomain Wildcards on Ubuntu

postgresqlUbuntu

I want to accept all db connections from servers with domain mydomain.com so that all subdomains like tiger.mydomain.com, venus.mydomain.com will have access to the postgresql server.

I've read that you have to create a reverse dns server so that it can lookup the domain and get the appropriate ip address. but it is not clear how to do this or a postgresql specific case.

Best Answer

From the manual:

address

Specifies the client machine addresses that this record matches. This field can contain either a host name, an IP address range, or one of the special key words mentioned below.

...

If a host name is specified (anything that is not an IP address or a special key word is processed as a potential host name), that name is compared with the result of a reverse name resolution of the client's IP address (e.g., reverse DNS lookup, if DNS is used). Host name comparisons are case insensitive. If there is a match, then a forward name resolution (e.g., forward DNS lookup) is performed on the host name to check whether any of the addresses it resolves to are equal to the client's IP address. If both directions match, then the entry is considered to match.

...

A host name specification that starts with a dot (.) matches a suffix of the actual host name. So .example.com would match foo.example.com (but not just example.com).

In other words, use

  host all all .mydomain.com md5

or similar in pg_hba.conf, along with reverse DNS configured appropriately as above.