Configuração do PostgreSQL PH_HBA

Configuração do PostgreSQL PH_HBA

Configuração baseada em host, comumente conhecida como ph_hba.Conf, é um arquivo especial usado para a autenticação do cliente PostGresql. Você pode pensar nisso como um arquivo de configuração para gerenciar políticas de acesso ao cluster do banco de dados PostGresql.

Antes de mergulharmos em como trabalhar com o arquivo de configuração do PostGresql, vamos instalar o PostGresql. Se você já o tiver instalado, fique à vontade para pular a seção.

Instalando o PostGresql

Para acompanhar este guia, você precisa garantir que você tenha instalado o PostGresql. Vou ilustrar como instalá -lo em um sistema Debian.

No sistema de arco - https: // linuxhint.com/install-postgresql-10-ard-linux/

No CentOS/Rehl - https: // linuxhint.com/install_postgresql_Centos8/

Comece atualizando seu sistema com o comando:

Atualização de instalação de sudo apt-get
Atualização de sudo apt-get

Uma vez atualizado, crie uma configuração de repositório de arquivos.

sudo sh -c 'echo "Deb http: // apt.PostGresql.org/pub/repos/apt $ (lsb_release -cs) -pgdg main ">/etc/apt/fontes.lista.D/PGDG.lista'

Em seguida, importe a chave de assinatura e atualize seu sistema como:

wget --quiet -o -https: // www.PostGresql.org/mídia/keys/accc4cf8.ASC | sudo apt-key add-&& sudo apt-get update

Por fim, instale o servidor PostgreSQL e o cliente com o comando:

Instalação sudo apt-get PostgreSQL-13 PostGresql-Client-13

Você pode especificar outras versões PostgreSQL, como PostgreSQL 9, 10, 11, 12, 14, etc.

Agora você pode inicializar o cluster PostGresql com o comando:

PG_CTLCLUSTER 13 START PRINCIPAL

Compreendendo o arquivo ph_hba

Por padrão, o arquivo de configuração PH_HBA está no diretório de cluster root.

Em nosso exemplo, está em:

/etc/postgreSql/13/main/ph_hba.conf

O PG_HBA segue um formato de configuração simples. Inclui um conjunto de regras de configuração, uma regra por linha.

O arquivo de configuração não é sensível aos espaços em branco, e todos os arquivos precedidos por um # são tratados como comentários e ignorados.

As regras PG_HBA não podem abranger várias linhas, pois cada linha é interpretada como uma regra separada.

O arquivo de configuração contém 5 registros no formato a seguir, respectivamente:

  • Digite o método de endereço do usuário do banco de dados [opções]
  • Tipo - Representa o tipo de host.
  • Base de dados - Especifica o banco de dados para o qual a regra está configurada.
  • Do utilizador - O nome de usuário associado ao banco de dados definido que corresponde à regra definida.
  • Endereço - O endereço do cliente. Pode ser um único IP ou uma sub -rede inteira. PostgreSQL suporta endereços IPv4 e IPv6.
  • Método - Especifica o método de autenticação para a regra definida.
  • Opções de autenticação - Opções para adicionar funcionalidade ao método de autenticação especificado.
  • Opções - Opções do método de autenticação na forma de nome = valor.

PostgreSQL aceita vários métodos de autenticação. Esses incluem:

  • Confiar - Usado para definir o método de autenticação para aceitar conexões incondicionalmente. Se configurado para confiar, qualquer pessoa pode se conectar ao servidor de banco de dados como qualquer usuário e qualquer banco de dados sem precisar de uma senha.
  • Rejeitar - Este método é semelhante ao método de confiança, mas rejeita conexões incondicionalmente.
  • Senha - Se o método estiver definido como senha, o cliente de conexão deve fornecer uma senha não criptografada.
  • Par - O método de autenticação por pares funciona em conexões locais usando o nome de usuário do sistema operacional do cliente de conexão e verificando um banco de dados correspondente para o nome de usuário. Um exemplo seria o comando psql sem a bandeira -u.
  • Cert - Este método de autenticação usa os certificados SSL do cliente de conexão.
  • LDAP - Auth usando um servidor LDAP.

O exposto acima é uma lista de alguns dos métodos de autenticação suportados. Você pode conferir outros métodos na documentação oficial.

Exemplo de configurações

A configuração PG_HBA é um arquivo de texto bruto que você pode editar com qualquer editor de texto suportado.

A seguir, são apresentadas algumas configurações que você pode fazer para solução de problemas ou fins de segurança.

Permita que qualquer usuário se conecte a qualquer banco de dados (local).

Digite o método de endereço do usuário do banco de dados
Local todos os 127.0.0.0.1 confiança

Permita que qualquer usuário de IP específico se conecte a um banco de dados específico se a senha estiver correta.

Digite o método de endereço do usuário do banco de dados
host db_name todos os 192.168.0.112 SCRAM-SHA-256

Rejeite todas as conexões de uma sub -rede IP específica

Digite o método de máscara Ip-Address do banco de dados do banco de dados
hospedar todos os 192.168.1.110 255.255.0.0 rejeitar

Permitir ou rejeitar um segmento de rede IP específico

Digite o método de endereço do usuário do banco de dados
hospedar todos os 192.168.0.1/24 Rejeitar

Especificando endereços no protocolo IPv4.

Permita que qualquer usuário se conecte a qualquer banco de dados no IPv6

Digite o método de endereço do usuário do banco de dados
hospedar tudo :: 1 confiança

Para cobrir o IPv6 e o ​​IPv4, você pode especificar o nome do host em vez.

Digite o método de endereço do usuário do banco de dados
hospedar tudo .rejeição local

Economizando e aplicando configuração

Antes de salvar a configuração, verifique se ela está no formato correto. Para recarregar e aplicar as alterações, você pode usar o utilitário PG_CTL.

O comando é:

PG_CTL RELOAD -S -D/ETC/POSTGRESQL/13

O -d especifica o diretório que contém o arquivo de configuração. Se nenhum for especificado, o padrão será usado.

Resumindo

O PG_HBA.O arquivo de configuração Conf ajuda a especificar a autenticação do cliente no servidor PostGresql. Fazer alterações pode permitir que você proteja seu sistema e permita apenas usuários e hosts específicos.