O PostgreSQL fornece alguns níveis de segurança de acesso. O primeiro é o acesso a determinada redes (IP ou Faixa de IPs) com a definição de obrigatoriedade de utilização ou não de um mecanismo de autenticação, que é configurado no arquivo pg_hba.conf
Segue modelo:
- local: Utilizando soquete local do host / servidor;
- host: Utilizando o protocolo TCP/IP;
- hostssl: Utilizando o protocolo TCP/IP, somente com SSL
- hostnossl: Utilizando o protocolo TCP/IP, somente sem SSL.
- user: Especifica para o registro sobre qual role no cluster é aplicada a regra
- address: Especifica quais endereços de máquinas clientes podem se conectar
- auth-method: Especifica qual será o método de autenticação
Tipos de auth-methods:
- trust – Permite conexão sem qualquer autenticação
- reject – Rejeita a conexão de imediato
- md5 – Obrigad que a conexão seja feita com hash MD5
- password – Aceita que a senha fornecida na conexão esteja sem nenhuma criptografia
Segue abaixo um exemplo de liberação somente para a rede 192.168.0.0/24 e localhost.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
## Nessa regras estou liberando acesso de qualquer origem.
host all all 192.168.0.0/24 password
# IPv6 local connections:
host all all ::1/128 password
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 password
host replication all ::1/128 password
Abs!