
Consejos de configuración de acceso a postgresql
Para implementar estas medidas tendremos que cambiar la configuración por defecto siguiendo estos pasos:
Para convertir la cuenta postgres del sistema operativo en una cuenta sin clave definida ejecutar como root:
1 | passwd -d postgres |
Comprobar que no teneis ninguna definición en pg_hba.conf para usuarios normales usando sockets (local) en el tipo de conexión. Si teneis usuarios usando sockets, cambiar el tipo de conexión a host y usar 127.0.0.1/255.255.255.255 (localhost) como IP de acceso. Con psql tendreis que utilizar psql -h localhost -U usuario para acceder al sistema.
Cambiar en el fichero de configuración postgresql.conf las siguientes lineas:
1 2 | listen_addresses = 'localhost' unix_socket_permissions = 0700 |
Si las bases de datos van a ser accedidas desde otras maquinas externas, tendreis que definir tambien en listen_addresses la IP del servidor postgreSQL.
Actualizar el fichero pg_ident.conf con la siguiente linea:
1 | administrador postgres postgres |
Y comprobar que la única linea en pg_hba.conf con información sobre el usuario “postgres” es la siguiente:
1 | local all postgres ident administrador |
No olvidar ejecutar un restart de PostgreSQL para que los cambios se instalen.
Accedemos ahora por ssh y como root ejecutamos lo siguiente:
1 2 3 | <strong># ssh root@10.0.0.1</strong> <strong># psql -U postgres</strong> psql: FATAL: Ident authentication failed for user "postgres" |
1 2 | <strong>-bash-3.2# psql -h localhost -U postgres</strong> psql: FATAL: Ident authentication failed for user "postgres" |
1 2 3 4 5 6 7 8 9 | <strong>-bash-3.2# su - postgres -bash-3.2$ psql</strong> Welcome to psql 8.1.21, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit postgres=# |