Aula - 4 Apostila Autenticação e Gerenciamento de Usuários

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 49

Sidymar Ramos Prexedes / sprexedes@hotmail.

com

Curso 801

Administração
PostgreSQL com Alta
Performance
Versão 2015_3.0
2
Administração PostgreSQL com Alta
Performance
Sidymar Ramos Prexedes / [email protected]
Sidymar Ramos Prexedes / [email protected]

Autenticação e Gerenciamento
de Usuários

Objetivos da aula:

➢Papéis de usuário

➢Concessão de privilégios

➢Papéis de grupo

➢Tipos de privilégio

➢O Arquivo de Autenticação: pg_hba.conf

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

IT Experience

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Papéis e privilégios

➢ O PostgreSQL tem um sistema de roles – papéis;


➢ Usuários e grupos são igualmente identificados como
papéis;
➢ Para criar um papel:
CREATE ROLE [nome];
➢ Para remover um papel:
DROP ROLE [nome];

Autenticação e gerenciamento de usuários

Lembrando sempre da disponibilidade e segurança dos dados, uma correta


administração dos usuários e grupos, seus privilégios de acesso e métodos de
autenticação é um dos fatores mais importantes para os bancos de dados.

Papéis e usuários

Usuários e grupos no PostgreSQL são igualmente chamados de roles –


papéis. Essa mistura, que a princípio pode causar muita confusão, na verdade facilita
bastante a administração de bancos de dados, uma vez que usuários podem fazer
parte de grupos e os comandos utilizados para designar privilégios são praticamente
os mesmos para ambos.
Sidymar Ramos Prexedes / [email protected]

Papéis e privilégios

➢ Para visualizar todos os papéis:

SELECT rolname FROM pg_roles;

➢ Pode ser utilizado o meta comando \du no psql.

Para criar papéis de quaisquer tipos, pode-se utilizar o comando SQL:

CREATE ROLE [nome];

Para remover um papel é tão simples quanto:

DROP ROLE [nome];

Um dos catálogos de sistema, interessante para a administração de papéis, é


o pg_roles. Um comando SQL que permite ver todos os papéis cadastrados seria:

SELECT rolname FROM pg_roles;

Comandos SQL podem ser digitados em qualquer ferramenta que se conecta


ao PostgreSQL, inclusive o psql e o pgAdmin 3. O psql possui um conjunto de meta
comandos, o meta comando para visualizar papéis é \du.
Sidymar Ramos Prexedes / [email protected]

Papéis de usuários

➢ Para criar usuários:

CREATE ROLE [nome] LOGIN;

Ou

CREATE USER [nome];

➢ Ambos os comandos têm a mesma função.

Papéis de usuário

Para criar usuários pode-se utilizar o comando genérico para a criação de


papéis adicionando a palavra LOGIN no final:

CREATE ROLE [nome] LOGIN;

Existe um comando simplificado exclusivo para papéis de usuários:

CREATE USER [nome];


Sidymar Ramos Prexedes / [email protected]

Papéis de usuários

➢ Para criar um superusuário, adicionar a palavra


SUPERUSER no comando;
➢ Apenas superusuários poderão criar novos
superusuários!
➢ Para que um usuário possa criar novos usuários,
adicionar CREATEROLE;
➢ Para que um usuário possa criar novos bancos,
adicionar CREATEDB.

As opções para os comandos CREATE ROLE e CREATE USER são as


seguintes:

● SUPERUSER fará com que o papel criado seja de superusuário.


● CREATEROLE permitirá que o papel possa criar novos papéis.
● CREATEDB permitirá que o papel possa criar novos bancos de dados.
● REPLICATION permitirá que o papel possa iniciar replicação através de streaming
replication ou fazer um backup inicial com pg_basebackup.

Apenas superusuários poderão criar novos superusuários!

Papéis de superusuário podem fazer qualquer coisa, inclusive criar novos


papéis e bancos de dados, independente de terem sido criados com CREATEROLE
ou CREATEDB. Ao se retirar a opção SUPERUSER de um papel, as opções
CREATEROLE e CREATEDB voltam a serem obedecidas, ou seja, é possível
determinar um superusuário temporariamente sem alterar as demais permissões do
papel.
Sidymar Ramos Prexedes / [email protected]

Concessão de Privilégios

➢ O dono de um objeto terá todos os privilégios sobre


ele;
➢ O superusuário terá todos os privilégios sobre todos
os objetos;
➢ Para assinalar um privilégio:
GRANT [privilégio] ON [objeto] TO [papel];

➢ Para remover um privilégio:


REVOKE [privilégio] ON [objeto] FROM [papel];

Concessão de privilégios

Os comandos para concessão e revogação de privilégios são,


respectivamente, GRANT e REVOKE.
Papéis donos de objetos terão todos os privilégios sobre eles por padrão,
exceto se especificado o contrário explicitamente. Eles também poderão conceder e
revogar privilégios dos objetos dos quais são os próprios donos.
Papéis de superusuário terão todos os privilégios sobre todos os objetos do
cluster, podendo conceder e revogar privilégios de todos a qualquer momento.

As sintaxes de GRANT e REVOKE são:


GRANT [privilégio] ON [objeto] TO [papel];
REVOKE [privilégio] ON [objeto] FROM [papel];
Sidymar Ramos Prexedes / [email protected]

Concessão de Privilégios

➢ Superusuários podem alterar quaisquer privilégios;

➢ Outros papéis podem alterar privilégios dos objetos


que forem donos;

➢ Papéis de usuário tem os mesmos privilégios do papel


de grupo que fizerem parte.

10

Papéis de usuário pertencentes a papéis de grupos herdarão os privilégios do


papel de grupo.
Um grande desejo dos usuários era poder atribuir privilégios a mais de um
objeto ao mesmo tempo. A partir da versão 9.0 do PostgreSQL, [objeto] pode ser
substituído por:

ALL TABLES IN SCHEMA [nome_do_schema]


ALL SEQUENCES IN SCHEMA [nome_do_schema]
ALL FUNCTIONS IN SCHEMA [nome_do_schema]
Sidymar Ramos Prexedes / [email protected]

Papéis de grupo

➢ Para criar papéis de grupo:

CREATE ROLE [nome do grupo];

➢ Para inserir papéis de usuário no grupo:

GRANT [nome do grupo] TO [usuário1], [usuário2]...

➢ Para remover papéis de usuário do grupo:

REVOKE [nome do grupo] FROM [usuário1], [usuário2]...

11

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Pseudo grupo PUBLIC

➢ Todos os papéis fazem parte deste pseudo grupo, por isso


todos os papéis herdam seu privilégios;
➢ Todo papel existente terá a soma do privilégios
concedidos diretamente a ele, mais os privilégios de um
possível papel de grupo e mais os privilégios concedidos
ao PUBLIC;
➢ Para conceder ou revogar privilégios ao PUBLIC basta
substituir o nome do papel nos comandos GRANT e
REVOKE.

12

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Tipos de privilégios

● SELECT ● DELETE

● INSERT ● TRUNCATE

● UPDATE ● REFERENCES

13

Tipos de privilégio
A lista a seguir mostra todos os privilégios que podem ser utilizados com
GRANT e REVOKE.

SELECT: Permite executar o comando SQL SELECT, que permite visualizar dados.
Permite, também, o comando exclusivo do PostgreSQL COPY TO.
Para permitir os privilégios UPDATE e DELETE, é obrigatória também a permissão de
Pode ser atribuído a sequências para permitir ler o valor atual.
INSERT: Permite INSERT, inserir novos registros.
Permite, também, o comando exclusivo do PostgreSQL COPY FROM.

UPDATE: Permite UPDATE, atualizar registros.


É obrigatório ter também privilégio SELECT sobre os objetos envolvidos.
DELETE: Permite DELETE, remover registros.
Obrigatório ter também privilégio SELECT sobre todas as colunas da tabela.

TRUNCATE: Permite TRUNCATE, zerar todos os registros de uma tabela.


REFERENCES: Permite que o papel crie novas chaves estrangeiras, deve ser
assinalado para ambas as tabelas envolvidas. Assim como SELECT, INSERT e
UPDATE, a partir da versão 8.4 aplica-se também a colunas.
Sidymar Ramos Prexedes / [email protected]

Tipos de privilégios

● TRIGGER ● EXECUTE


CREATE ●
USAGE

● CONNECT ● ALL

● TEMP ● ALL PRIVILEGES

Todos os privilégios. Ambas as sintaxes são corretas


por compatibilidade.

14

TRIGGER: Permite que o papel crie gatilhos em tabelas.

CREATE: Pode ser atribuído a bancos de dados, permitindo ao papel criar novos
Pode ser atribuído a schemas, permitindo ao papel criar novos objetos no schema.

Pode ser atribuído a tablespaces, permitindo ao papel criar ou mover tabelas, índices
e arquivos temporários para dentro da tablespace.

CONNECT: Permite a conexão a um banco de dados.

O PostgreSQL trabalha com privilégios padrões para certos tipos de objetos. Todos
os bancos de dados possuem privilégio CONNECT para todos, PUBLIC, portanto, ao
remover o privilégio CONNECT de um papel, ele continuará podendo se conectar ao
banco de dados, até que o privilégio seja também removido do banco de dados para
todos.
Sidymar Ramos Prexedes / [email protected]

TEMPORARY e TEMP
Ambas as formas são válidas.
Este privilégio é dado sobre bancos de dados, e permitem ao papel a criação de
tabelas temporárias.

EXECUTE
Único privilégio associado a funções, permite a execução delas.

USAGE
Único privilégio associado a linguagens procedurais, permitem ao papel criar novas
funções baseadas na linguagem.

Para schemas permite o acesso a seu conteúdo, observados os demais privilégios


dos objetos ali contidos.

ALL ou ALL PRIVILEGES


Atalho para todos os privilégios. Ambas as sintaxes são corretas por compatibilidade.
Ao passar este privilégio no comando GRANT, todos os privilégios relacionados ao
objeto especificado serão permitidos ao usuário.
De forma similar, ao passar este privilégio no comando REVOKE, todos os privilégios
relacionados ao objeto especificado serão retirados do usuário.

Nota Importante:
No PostgreSQL existe um pseudo grupo chamado PUBLIC, do qual todos os outros
papéis fazem parte. Em outras palavras pode-se dizer que todo papel existente terá a
soma do privilégios concedidos diretamente a ele, mais os privilégios de um possível
papel de grupo e mais os privilégios concedidos ao PUBLIC.

Para conceder ou revogar privilégios ao PUBLIC, utilize-o no lugar do nome do papel


nos comandos GRANT e REVOKE.
Sidymar Ramos Prexedes / [email protected]

Para que serve o pg_hba.conf

➢ Designar permissões antes da conexão ao banco;


➢ Aumentar a segurança;
➢ Designar permissões a hosts;
➢ Gerenciar métodos de autenticação;
➢ É uma lista de registros (linhas);
➢ Tipo de conexão, banco, papel, host e método;
➢ Precedência do método;
➢ Conjunto de parâmetros de conexão mais restritivos primeiro,
com métodos mais relaxados;
➢ Conjunto de parâmetros de conexão mais relaxados depois,
com métodos mais seguros.

16

Para quê serve o pg_hba.conf

Como visto anteriormente nas permissões, é possível designar restrições e


liberações específicas por usuário para praticamente tudo dentro do cluster do
PostgreSQL. Essas configurações são aplicadas dentro do cluster, ou seja, um
usuário que tentar acessar um recurso não permitido já terá se conectado de alguma
forma ao banco de dados e as verificações serão feitas em catálogo.

O arquivo pg_hba.conf, acrônimo de Host-Based Authentication – autenticação


baseada em host, tem como função limitar os acessos antes mesmo que algum tipo
de conexão seja feita ao cluster.
Sidymar Ramos Prexedes / [email protected]

Campo TYPE

local
➢ Conexão por Unix Domain Sockets;
➢ Nem todos os clientes aceitarão conectar-se por este
método;
➢ O psql tentará se conecta por socket local se não for
especificada a opção -h;
➢ Se nenhuma linha do pg_hba.conf contiver este valor, a
conexão por socket será totalmente desativada.

17

Conexão por Unix Domain Sockets, ou seja, conexão por socket do sistema
operacional, sem o uso de rede ou da interface loopback (localhost).

O psql tentará se conecta por socket local se não for especificada a opção -h.
Os aplicativos baseados em libpq têm o mesmo comportamento. Na opção -h pode
ser também passado o diretório do socket.
Sidymar Ramos Prexedes / [email protected]

Campo TYPE

host
➢ TCP/IP remoto ou local;

➢ Não criptografadas ou por SSL;

➢ Verificar listen_address do arquivo postgresql.conf.

18

Conexão usando TCP/IP remota ou local.

Conexões não criptografadas ou criptografadas por SSL serão igualmente


aceitas.

Conexões locais serão aceitas pela interface loopback com o hostname


localhost ou pelo IP 127.0.0.1, observado o arquivo hosts do sistema operacional.

Observe sempre quais interfaces de rede estão sendo utilizadas para escuta
na configuração listen_address do arquivo postgresql.conf.
Sidymar Ramos Prexedes / [email protected]

Campo TYPE

hostssl
➢ Similar à opção host, somente SSL.
➢ O PostgreSQL deve estar compilado com suporte a SSL
(biblioteca OpenSSL disponível);
➢ Deve estar ativa em postgresql.conf;
➢ Todas as cifras da biblioteca OpenSSL.

hostnossl
➢ Exatamente o oposto de hostssl;
➢ Somente conexões não criptografadas serão aceitas.

19

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Campo DATABASE

➢ Especificar diretamente banco de dados;

➢ Separar múltiplos valores por vírgulas;

➢ "all" representará todos os bancos;

➢ "sameuser" usuários do banco de mesmo nome;

➢ "samerole" usuários pertencentes a grupo de mesmo


nome do banco.

➢ "@" seguido do nome do arquivo, arquivo de lista.

20

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Campo USER

➢ Especificar usuário;

➢ Separar múltiplos valores por vírgulas;

➢ Papel de grupo, precedido por "+", todos os usuários

pertencentes ao grupo poderão se valer de tentativas de

conexão;

➢ Especificar um arquivo com lista de valores, utilizando "@".

21

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Campo CIDR-ADDRESS

➢ Não usar para tipo "local";


➢ Inserir IP ou máscara:
● 172.20.143.89/32 um único host
● 172.20.143.0/24 rede pequena
● 10.6.0.0/16 rede grande
NOTA:
Ou: Funciona com IPV4 e IPV6;
Depende do sistema
● 172.20.143.89 255.255.255.255 operacional para IPV6;
● 172.20.143.0 255.255.255.0 Utilizar um registro IPV4 e
outro IPV6 mesmo que haja
● 10.6.0.0 255.255.0.0 equivalência.

22

Esta é a única coluna que pode conter de zero a dois valores separados por
espaço, sendo aceitas. Para linhas do tipo local, este campo não deve ser
especificado (nenhum valor na coluna, coluna ignorada)

● Para registros host, hostssl e hostnossl, este campo pode conter:


Endereços tipo CIDR-address (um valor na coluna), por exemplo:

172.20.143.89/32 um único host


172.20.143.0/24 rede pequena
10.6.0.0/16 rede grande
201.0.0.0/8 internet, todos os IPs começando por 201
0.0.0.0/0 toda a internet
Sidymar Ramos Prexedes / [email protected]

Campo METHOD

Quando a tentativa de conexão coincidir com toda


a combinação dos campos anteriores, o
PostgreSQL utilizará o método de conexão
especificado neste campo.

23

Se este método aprovar a tentativa (como usuário e senha válidos), o usuário


se conectará ao banco de dados. Caso contrário, a conexão será recusada e, como
já citado acima, não haverá outras tentativas de conexão existentes no arquivo
pg_hba.conf abaixo desta linha.
Sidymar Ramos Prexedes / [email protected]

Campo METHOD

trust

➢ Menos seguro;

➢ Permitirá a conexão incondicionalmente, por qualquer

pessoa, preenchendo os requisitos dos outros campos;

➢ Nenhuma senha será solicitada.

24

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Campo METHOD

reject

➢ Rejeitar a conexão incondicionalmente;

➢ Útil para excluir hosts;

➢ Método utilizado para realizar blacklist.

25

Útil quando existe uma rede grande onde apenas alguns hosts devem ser
excluídos. Método utilizado para realizar blacklist. Também utilizado quando colocado
no topo do arquivo para bloquear todos os acessos ao banco de dados em caso de
necessidade de manutenção.
Sidymar Ramos Prexedes / [email protected]

Campo METHOD

md5

➢ Senha criptografada;

➢ Viajará criptografada pela rede;

➢ Preferido para conexões não SSL;

➢ É o método mais usado na prática.

26

Uma senha deverá ser fornecida pelo usuário, o banco de dados guarda esta
senha no formato MD5. A aplicação cliente é responsável por prover a criptografia (o
que é feito pela libpq), ou seja, a senha viajará criptografada pela rede. É o método
preferido para conexões não SSL. É o método mais usado na prática.
Sidymar Ramos Prexedes / [email protected]

Campo METHOD

password

➢ Requererá uma senha não criptografada;

➢ A senha viaja sem criptografia pela rede;

➢ Não utilize em redes não privadas.

27

Não utilize em redes não privadas e/ou sujeitas a inspeção de pacotes. Pode
ser o método de autenticação obrigatório para o pgpool-II em alguns modos de
operação.
Sidymar Ramos Prexedes / [email protected]

Campo METHOD

➢ Campo extra:

map=[nome do mapa]

➢ Mapa no arquivo pg_ident.conf.

➢ O arquivo pg_ident.conf contém registros com três

campos, no formato:

MAP-NAME SYS-USER PG-USER.

28

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Campo METHOD

Ident → peer
➢ Usuário do S.O é o mesmo do Postgres;

➢ TCP/IP, servidor ident, não recomendado;

➢ Socket, verificará pelo S.O.;

➢ Não pede senha;

➢ Em Solaris a partir do PostgreSQL 8.4;

➢ Interessante para muitos usuários locais.

29

O usuário que estiver tentando se conectar deve existir no sistema operacional


e ser o mesmo que está tentando a conexão por um servidor ident que deve existir
no cliente. Este método de autenticação não pede senha, ou seja, o PostgreSQL
confiará no sistema operacional e no servidor de Ident.

Para conexões locais, desde a versão 9.0 deve ser utilizado o método ``peer''.

A autenticação tipo ident aceita mais um campo no fim do registro: map=[nome


do mapa] – um mapa relacionando o usuário do sistema operacional com o usuário
do cluster será utilizado. O mapa deve estar no arquivo pg_ident.conf. O arquivo
pg_ident.conf contém registros com três campos, no formato:
MAP-NAME SYS-USER PG-USER.

Não se recomenda o uso de ident, pois servidores ident podem facilmente


burlar regras e informar a existência de usuários fantasmas.

Na versão 8.4 ou anteriores, o método ident pode ser utilizado em conexões


por socket Unixcom segurança. Nas versões 9.0 e superiores o método a ser
utilizado para socket Unix é peer.
Sidymar Ramos Prexedes / [email protected]

Campo METHOD

● gss ● radius
● sspi ● cert
● krb5 ● pam
● ldap

30

gss: Autenticação tipo Single Sign On com Kerberos.


sspi: Disponível apenas quando o servidor PostgreSQL estiver rodando no Windows,
permite autenticação Single Sign On com Kerberos ou NTLM, sendo Kerberos
preferível quando disponível.
krb5: Autenticação tipo Single Sign On com Kerberos versão 5.
ldap: Autenticar usando um servidor LDAP. Configurações adicionais são necessárias
em mais um campo.
radius: Autenticar usando um servidor RADIUS. Configurações adicionais são
necessárias em mais um campo.
cert: Autenticar usando os certificados SSL existentes. Nenhuma senha será
solicitada. A cn do certificado deve ser o nome do usuário. O cliente deve possuir o
certificado válido e correspondente. O servidor deve possuir o certificado raiz da
autoridade que emitiu o certificado do cliente.
pam: Autenticar usando PAM, disponível em alguns sistemas operacionais como
Linux e Solaris
ara os métodos baseados em Kerberos, NTLM, LDAP, RADIUS, certificados e PAM, o
usuário deverá previamente existir no catálogo do PostgreSQL, e ser o mesmo do
serviço externo. Apenas o par usuário/senha será verificado junto ao serviço externo
para permissão de conexão.
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter

Permissões de acesso e conexão remota:


➢ Tarefas:

● Configurar permissões de acesso ao usuário da


Aplicação;
● Liberar acesso aos hosts da empresa Dexter;
● Liberar acesso a aplicação Dexter;
● Fazer acesso remoto via modo texto e gráfico.

31

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina DB Master
Configurar usuário da aplicação:
# su - aluno
1

$ psql dexter
2

=# GRANT SELECT ON
3

banners,clientes,conteudos,funcionarios,menus,perfis
TO dexter;
=# \q
4

$ exit
5

32

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina DB Master

Liberar acesso as máquinas da Dexter:


# vim /etc/postgresql/9.4/main/pg_hba.conf
1

....

host dexter dexter 192.168.200.30/32 md5


host dexter dexter 192.168.56.1/32 md5
host dexter aluno 192.168.200.30/32 md5

33

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina DB Master

Liberar acesso as máquinas da Dexter:

=# vim /etc/postgresql/9.4/main/postgresql.conf
2

listen_addresses = '*'

# service postgresql restart


3

34

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina WebServer

Configuração do cliente Postgresql:


# echo "deb http://apt.postgresql.org/pub/repos/apt/
1

jessie-pgdg main" >> /etc/apt/sources.list


# wget https://www.postgresql.org/media/keys/ACCC4CF8.asc
2

# apt-key add ACCC4CF8.asc


3

# apt-get update
4

# apt-get upgrade
5

35

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina WebServer

Configuração do cliente Postgresql:


6# \d
7# psql -h 192.168.200.50 -d dexter -U dexter
8=# \d

9=# select * from funcionarios;

10 =# \q

36

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina DB Master
Enquanto a máquina WebServer estiver
conectado à máquina DB Master:

➢Visualize os processos rodando;

➢Visualize as conexões de rede abertas;

➢Identifique quais conexões são abertas por você e quais

são da máquina WebServer.

37

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina DB Master
Ferramentas do S.O. e View do PostgreSQL:
1# ps aux | grep postgres

2# netstat -an | grep 5432

3# su - postgres

4$ psql dexter

5=# \x

6=# SELECT * from pg_stat_activity;

38

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter

Permissões de acesso para aplicação dexter:


➢ Tarefas:
● Ajustar o arquivo pg_hba.conf para permitir o acesso do banco
'dexter' através do usuário 'dexter', utilizando o IP da máquina
WebServer, autenticando através do método MD5;
● Acessar na máquina Física url 'http://192.168.56.30/admin.php';
● Efetuar login com as credencias '[email protected]' e senha
'123456' e navegar pelo sistema, afim de garantir que os
privilégios foram concedidos corretamente.

39

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter

Permissões de acesso para usuários LDAP:


➢ Tarefas:
● Criar usuário suporte no postgres sem senha;
● Ajustar o arquivo pg_hba.conf para permitir o acesso do banco
'dexter' através do usuário 'suporte', utilizando o IP da máquina
Webserver, autenticando através do método LDAP;
● Definir o IP 192.168.200.20 para o servidor LDAP,
ldapprefix="uid=" e ldapsuffix=",ou=People,dc=dexter,dc=com,dc=br"
● Acessar o banco dexter com o usuário suporte.

40

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina DB Master
Adicionar usuários da base LDAP no Postgres:
# su – postgres
1

$ psql dexter
2

=# CREATE USER suporte;


3

=# GRANT SELECT ON funcionarios TO suporte;


4

=# \q
5

$ exit
6

41

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina DB Master
Permissões de acesso para usuários LDAP:
# vim /etc/postgresql/9.4/main/pg_hba.conf
7

....

host dexter suporte 192.168.200.30/32


ldap ldapserver=192.168.200.20 ldapprefix="uid="
ldapsuffix=",ou=People,dc=dexter,dc=com,dc=br"

# service postgresql restart


8

42

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina WebServer
Permissões de acesso para usuários LDAP:
9# psql -h 192.168.200.50 -d dexter -U suporte

10 =# \d

11 =# \x

12 =# select * from clientes;

13 =# select * from funcionarios;

43

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter

Visualizar dados através do pgAdmin III:


➢ Tarefas:

● Instalar o pgAdmin III na máquina Desktop.


● Abrir o pgAdmin III na máquina Desktop.
● Conecte-se ao seu banco de dados dexter.
● Navegue pelos diversos menus e bancos de dados
padrão.
● Verifique novamente os processos que estão rodando.

44

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina Linux Interna

Visualizar dados através do pgAdmin III:


1# apt-get install pgadmin3

NOTA: Acesse a ferramenta através do menu


Aplicativos → Desenvolvimento → pgAdmin III

45

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina Linux Interna

46

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Laboratório Dexter
Executar os comandos na
máquina Linux Interna

47

Anotações:
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
__________________________________________________
Sidymar Ramos Prexedes / [email protected]

Próximos Passos

Para que você tenha um melhor aproveitamento do curso,


participe das seguintes atividades disponíveis no Netclass:

➢Resolver o Desafio para instalar e configurar acesso do


phpPgAdmin no servidor DB Master através do servidor
Webserver, e postar o resultado no Fórum Temático;
➢Responder as questões do Teste de Conhecimento.

Mãos à obra!

48
Sidymar Ramos Prexedes / [email protected]

Você também pode gostar