Menu Principal

sexta-feira, 9 de setembro de 2011

Instalando o PostgreSQL no CENTOS

Instalando os pacotes necessários:

Obs.: Para esta instalação estou admitindo que o Apache esteja corretamente instalado e funcionando. Além do Apache, também é necessário que o PHP esteja instalado. Isso porque eles serão necessários para utilização do phpPgAdmin.

# yum install -y postgresql postgresql-server postgresql-devel

O primeiro pacote é o base para o PostgreSQL. Em seguida, temos o pacote para o servidor e o de desenvolvimento. Como dependência, também será instalado o postgresql-libs.

Verificando os pacotes:

# rpm -qa | grep postgresql
postgresql-8.1.9-1.el5
postgresql-server-8.1.9-1.el5
postgresql-libs-8.1.9-1.el5
postgresql-devel-8.1.9-1.el5

Se você tiver obtiver na saída os pacotes citados acima, podemos continuar.

Iniciando o serviço:
Antes de iniciar rode o comando: service postgresql initdb (apenas na primeira vez para a criação dos arquivos padrão.)
# service postgresql start
Iniciando serviço postgresql : [ OK ]

A partir desse momento o servidor PostgreSQL já está rodando. Para confirmar:

# nmap -sTU localhost

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2007-08-08 16:51 BRT
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 3156 closed ports
PORT STATE SERVICE
80/tcp open http
5432/tcp open postgres

O arquivo para configurar o Postgre é o /var/lib/pgsql/data/pg_hba.conf
Ex de configuração
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all rede_local/mask trust


A autenticação do cliente é controlada pelo arquivo que por tradição se chama pg_hba.conf e é armazenado no diretório de dados do agrupamento de bancos de dados. HBA significa autenticação baseada no hospedeiro (host-based authentication). É instalado um arquivo pg_hba.conf padrão quando o diretório de dados é inicializado pelo utilitário initdb. Entretanto, é possível colocar o arquivo de configuração da autenticação em outro local; consulte o parâmetro de configuração hba_file.

O formato geral do arquivo pg_hba.conf é um conjunto de registros, sendo um por linha. As linhas em branco são ignoradas, da mesma forma que qualquer texto após o caractere de comentário #. Um registro é formado por vários campos separados por espaços ou tabulações. Os campos podem conter espaços em branco se o valor do campo estiver entre aspas. Os registros não podem ocupar mais de uma linha.

Cada registro especifica um tipo de conexão, uma faixa de endereços de IP de cliente (se for relevante para o tipo de conexão), um nome de banco de dados, um nome de usuário e o método de autenticação a ser utilizado nas conexões que correspondem a estes parâmetros. O primeiro registro com o tipo de conexão, endereço do cliente, banco de dados solicitado e nome de usuário que corresponder é utilizado para realizar a autenticação. Não existe fall-through (procura exaustiva) ou backup: se um registro for escolhido e a autenticação não for bem-sucedida, os próximos registros não serão levados em consideração. Se não houver correspondência com nenhum registro, então o acesso é negado.

O registro pode ter um dos sete formatos a seguir:

local banco_de_dados usuário método_de_autenticação [opção_de_autenticação]
host banco_de_dados usuário endereço_de_CIDR método_de_autenticação [opção_de_autenticação]
hostssl banco_de_dados usuário endereço_de_CIDR método_de_autenticação [opção_de_autenticação]
hostnossl banco_de_dados usuário endereço_de_CIDR método_de_autenticação [opção_de_autenticação]
host banco_de_dados usuário endereço_de_IP máscara_de_IP método_de_autenticação [opção_de_autenticação]
hostssl banco_de_dados usuário endereço_de_IP máscara_de_IP método_de_autenticação [opção_de_autenticação]
hostnossl banco_de_dados usuário endereço_de_IP máscara_de_IP método_de_autenticação [opção_de_autenticação]

O significado de cada campo está descrito abaixo:

local

Este registro corresponde às tentativas de conexão feitas utilizando soquete do domínio Unix. Sem um registro deste tipo não são permitidas conexões através de soquete do domínio Unix.
host

Este registro corresponde às tentativas de conexão feitas utilizando o protocolo TCP/IP. Os registros host correspondem tanto às conexões SSL (Secure Socket Layer), quanto às não SSL.

Nota: Não serão possíveis conexões TCP/IP remotas, a menos que o servidor seja inicializado com o valor apropriado para o parâmetro de configuração listen_addresses, uma vez que o comportamento padrão é aceitar conexões TCP/IP apenas no endereço retornante (loopback) localhost.

hostssl

Este registro corresponde às tentativas de conexão feitas utilizando o protocolo TCP/IP, mas somente quando a conexão é feita com a criptografia SSL.

Para esta opção poder ser utilizada o servidor deve ter sido construído com o suporte a SSL ativado. Além disso, o SSL deve ser ativado na inicialização do servidor através do parâmetro de configuração ssl (Para obter informações adicionais deve ser consultada a Seção 16.7).
hostnossl

Este registro é o oposto lógico de hostssl: só corresponde a tentativas de conexão feitas através do protocolo TCP/IP que não utilizam SSL.
banco_de_dados

Especifica quais bancos de dados este registro corresponde. O valor all especifica que corresponde a todos os bancos de dados. O valor sameuser especifica que o registro corresponde ao banco de dados com o mesmo nome do usuário fazendo o pedido de conexão. O valor samegroup especifica que o usuário deve ser membro do grupo com o mesmo nome do banco de dados do pedido de conexão. Senão, é o nome de um banco de dados específico do PostgreSQL. Podem ser fornecidos vários nomes de banco de dados separados por vírgula. Pode ser especificado um arquivo contendo nomes de banco de dados, precedendo o nome do arquivo por @.
usuário

Especifica quais usuários do PostgreSQL este registro corresponde. O valor all especifica que corresponde a todos os usuários. Senão, é o nome de um usuário específico do PostgreSQL. Podem ser fornecidos vários nomes de usuário separados por vírgula. Podem ser especificados nomes de grupo precedendo o nome do grupo por +. Pode ser especificado um arquivo contendo nomes de usuário precedendo o nome do arquivo por @.
endereço_de_CIDR

Especifica a faixa de endereços de IP da máquina cliente que este registro corresponde. Contém um endereço de IP na notação padrão decimal com pontos, e o comprimento da máscara de CIDR (Os endereços de IP somente podem ser especificados numericamente, e não como domínios ou nomes de hospedeiro). O comprimento da máscara indica o número de bits de mais alta ordem que o endereço de IP do cliente deve corresponder. Os bits à direita devem ser zero em um determinado endereço de IP. Não pode haver espaços em branco entre os endereços de IP, a / e o comprimento da máscara de CIDR. [1]

Um endereço_de_CIDR típico seria 172.20.143.89/32 para um único hospedeiro, ou 172.20.143.0/24 para uma rede. Para especificar um único hospedeiro deve ser utilizada uma máscara de CIDR igual a 32 para o IPv4, ou igual a 128 para o IPv6.

Um endereço especificado no formato IPv4 corresponde às conexões IPv6 que possuem o endereço correspondente como, por exemplo, 127.0.0.1 corresponde ao endereço de IPv6 ::ffff:127.0.0.1. Uma entrada especificada no formato IPv6 corresponde apenas às conexões IPv6, mesmo que represente um endereço na faixa IPv4-em-IPv6. Deve ser observado que as entradas no formato IPv6 serão rejeitadas se a biblioteca C do sistema não possuir suporte a endereços IPv6.

Este campo se aplica apenas aos registros host, hostssl e hostnossl.
endereço_de_IP
máscara_de_IP

Estes campos podem ser utilizados como uma alternativa à notação endereço_de_CIDR. Em vez de especificar o comprimento da máscara, a máscara é especificada como uma coluna em separado. Por exemplo, 255.0.0.0 representa uma máscara de CIDR para endereços de IPv4 com comprimento igual a 8, e 255.255.255.255 representa uma máscara de CIDR com comprimento igual a 32.

Estes campos se aplicam apenas aos registros host, hostssl e hostnossl.
método_de_autenticação

Especifica o método de autenticação a ser utilizado para se conectar através deste registro. Abaixo está mostrado um resumo das escolhas possíveis; os detalhes podem ser encontrados na Seção 19.2.

trust

A conexão é permitida incondicionalmente. Este método permite a qualquer um que possa se conectar ao servidor de banco de dados PostgreSQL se autenticar como o usuário do PostgreSQL que for desejado, sem necessidade de senha. Consulte a Seção 19.2.1 para obter detalhes.
reject

A conexão é rejeitada incondicionalmente. É útil para "eliminar por filtragem" certos hospedeiros de um grupo.
md5

Requer que o cliente forneça uma senha criptografada pelo método md5 para autenticação. Consulte a Seção 19.2.2 para obter detalhes.
crypt

Requer que o cliente forneça uma senha criptografada através de crypt() para autenticação. Deve-se dar preferência ao método md5 para os clientes com versão 7.2 ou posterior, mas os clientes com versão anterior a 7.2 somente suportam crypt. Consulte a Seção 19.2.2 para obter detalhes.
password

Requer que o cliente forneça uma senha não criptografada para autenticação. Uma vez que a senha é enviada em texto puro pela rede, não deve ser utilizado em redes não confiáveis. Consulte a Seção 19.2.2 para obter detalhes.
krb4

É utilizado Kerberos V4 para autenticar o usuário. Somente disponível para conexões TCP/IP. Consulte a Seção 19.2.3 para obter detalhes.
krb5

É utilizado Kerberos V5 para autenticar o usuário. Somente disponível para conexões TCP/IP. Consulte a Seção 19.2.3 para obter detalhes.
ident

Obtém o nome de usuário do sistema operacional do cliente (para conexões TCP/IP fazendo contato com o servidor de identificação no cliente, para conexões locais obtendo a partir do sistema operacional) e verifica se o usuário possui permissão para se conectar como o usuário de banco de dados solicitado consultando o mapa especificado após a palavra chave ident. Consulte a Seção 19.2.4 para obter detalhes.
pam

Autenticação utilizando o serviço Pluggable Authentication Modules (PAM) fornecido pelo sistema operacional. Para obter detalhes deve ser consultada a Seção 19.2.5.

Fonte: http://pgdocptbr.sourceforge.net/pg80/client-authentication.html


Após a configuração o serviço deve ser reinicializado.

# service postgresql restart

Nenhum comentário:

Postar um comentário