En 11/11/24 11:10 AM, Javier J Matilla escribió:
Hola Jaime,
Muchas gracias por la respuesta. Entiendo que hay un problema de comunicación,
me explico: actualmente uso ssl para la conexión con usuario y contraseña y
funciona perfecto, tengo problemas porque no veo bien que la seguridad se
delegue en pg_hba.conf como fichero plano, entiendo que debería estar
incrustado en el servicio como una base de datos más de configuración, pero
bueno, esta parte no es problema si tengo controlado el acceso y el fichero.
Eso se resuelve en tu propio archivo pg_hba.conf. Le cambias el método
de trust a scram-sha-256
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all scram-sha-256
# IPv4 local connections:
host all all 127.0.0.1/32 scram-sha-256
# IPv6 local connections:
host all all ::1/128 scram-sha-256
Así como mencionas, las credenciales de acceso se almacenan en la propia
base de datos.
La contraseña se la cambias con ALTER USER
https://www.postgresql.org/docs/current/sql-alteruser.html
Mi preocupación es si alguien se puede conectar como administrador al servidor,
que no tenga fácil, copiar los ficheros y llevárselos a otro servidor.
Eso se restringe con los permisos de UNIX.
En el caso de la encriptación del disco con Bitlocker o Lucks, en el momento
que inicia el sistema operativo y el servicio, desbloquea el disco, por tanto
creo que no evitaría el problema. Mi búsqueda es: ¿como evito o que técnica
puedo usar para prevenir, que alguien que se conecte al equipo como
administrador pueda copiar o consultar los datos de postgres de ninguna manera
salvo que conozca el usuario y contraseña de acceso o tenga una cuenta de
acceso a los datos y no solo por ser administrador del equipo tenga acceso?.
El METHOD en tu pg_hba.conf
Entiendo que si eres administrador del equipo ya tienes un problema
suficientemente grande, pero, no tendrías los datos, salvo que conozcas este
usuario y contraseña, y no podrías copiar nada.
Es aquí donde he consultado y TDE sería la mejor opción, desconozco si existen
otras alternativas.
Postgres soporta múltiples métodos de autenticación. No necesitaríás
recurrir a herramientas propietarias de terceros.
En cuanto a la autorización, eso lo haces desde SQL por medio de GRANT y
REVOKE.
Al ver que no es muy solicitado este tema para postgres como para otros
sistemas es cuando he dado por hecho que delega la seguridad en el sistema
operativo,
Eso solo es un default de instalación, pero Postgres soporta múltiples
métodos. En el propio archivo pg_hba.conf viene explicado.
"si eres administrador del equipo, tienes acceso a todo".
No siempre y no necesariamente.
Espero haber aclarado un poco más el contexto, antes puede que haya concluido
demasiado rápido.
Gracias de nuevo.
Un saludo