selinux booleano allow_user_postgresql_connect não tem efeito

1

Estou configurando um novo sistema que contém um banco de dados postgresql e estou tentando bloquear quais máquinas são capazes de abrir uma conexão com o banco de dados.

Estou tentando usar o booleano allow_user_postgresql_connect para conseguir isso, mas até agora não consegui bloqueá-lo.

Estou testando com 2 servidores DB e Client como abaixo. Ambos são RHEL6u2 executando postgres 8.4.7-2;

DB# getenforce
Enforcing
DB# getsebool allow_user_postgresql_connect
allow_user_postgresql_connect --> on
DB# service postgresql start
starting postgresql service:              [  OK  ]

Client# getenforce
Enforcing
Client# getsebool allow_user_postgresql_connect
allow_user_postgresql_connect --> off

Client-> psql -h DB "sslmode=require dbname=mydb" postgres
connects

Eu tentei ativar / desativar todas as combinações de allow_user_postgresql_connect nas duas máquinas que não conseguiram fazer com que ele negasse uma conexão.

Como esse bool deve ser configurado para impedir que um usuário em uma máquina se conecte ao banco de dados?

Sou muito novo no SElinux, por isso posso estar negligenciando algo óbvio.

    
por TaninDirect 09.11.2012 / 00:30

1 resposta

3

Por que você está tentando usar o SELinux para isso? O Postgres já tem um sistema de autenticação e autorização perfeitamente cromulento , que é o que você deve estar usando para isso (entre outras razões, porque ele coloca logins com falha no local lógico: os logs do Postgres).

Se você estiver tentando proteger ainda mais o sistema, não permitindo que sistemas não autorizados se conectem à porta do Postgres, presume-se que você tenha uma lista de sistemas autorizados (endereços IP) e possa configurar uma regra de firewall que bloqueie o tráfego de hosts não autorizados. .

Tentar colocar o SELinux em submissão para algo como isso parece tentar colocar um pino quadrado em um slot de cartão de crédito para mim.

    
por 09.11.2012 / 00:44