domingo, 27 de janeiro de 2013

Configuração Inicial do PostgreSQL

Após instalarmos um PostgreSQL devemos efetuar algumas configurações importantes de segurança, eis os passos que uso mais:

  1. Definir uma senha para o usuário postgres

    Na maioria das distribuições linux o banco será instalado e o usuário administrador do banco, o usuário postgres estará sem senha. Instaladores de outros sistemas operacionais pedem senha durante a instalação. Você pode definir uma senha de banco entrando como root em um terminal para tornar-se o usuário de sistema postgres e só então chamar o console do psql:

    [sombriks@gau ~]$ sudo su
    [sudo] password for sombriks: 
    [root@gau sombriks]# su postgres
    bash-4.2$ psql 
    psql (9.1.2)
    Digite "help" para ajuda.
    
    postgres=# alter user postgres with encrypted password 'postgres_senha';
    ALTER ROLE
    postgres=# 
    

    Como observado a senha escolhida foi postgres_senha, mas se eu fosse você colocava uma senha mais forte.

  2. Definir o modo de autenticação como md5 no pg_hba.conf

    Este arquivo é importante na sua instalação de PostgreSQL, é nele que você define que máquinas podem se conectar à sua base e como elas irão se autenticar. A localização do arquivo varia de sistema para sistema, mas acredite quando eu digo que ele existe e você deve encontra-lo. Para uma instalação simples, você pode substituir o conteúdo do arquivo por estas duas linhas:

    local   all         all                               md5
    host    all         all         127.0.0.1/32          md5

    Isto garante que somente conexões locais tem acesso ao banco e que somente usuários com senha são permitidos aqui. Caso queira menos ou mais segurança, veja este link para mais detalhes.

  3. Criar um usuário limitado para uso por parte da aplicação

    O usuário postgres tem poderes administrativos, você não deseja que uma aplicação com brechas de segurança seja utilizada para tomar controle do seu banco. Crie um usuário que detenha poderes apenas dentro de um banco, sem poderes administrativos. Desta forma, em o pior acontecendo e o banco for comprometido, os estragos estarão contidos no esquema da aplicação problemática. Há quem crie ainda um usuário que define tabelas e outros objetos do banco e outro que apenas manipula, mas fica a seu critério como você quer gastar os seus dias na terra.

    Para criar um usuário com poderes limitados em uma base única e supondo que os ajustes 1 e 2 já foram feitos, reinicie o banco e efetue os seguintes comandos:

    [sombriks@gau ~]$ psql -U postgres
    Senha para usuário postgres: 
    psql (9.1.2)
    Digite "help" para ajuda.
    
    postgres=# create user app_user with encrypted password 'app_password';
    CREATE ROLE
    postgres=# create database app_db with owner app_user;
    CREATE DATABASE
    postgres=#

    Em um outro terminal ou já por dentro da aplicação você verá que banco e usuário estão totalmente operacionais.

É só isso, com estes passos simples seu PostgreSQL vai lhe servir muito bem.

Sem mais,

Nenhum comentário :

Postar um comentário