martes, 31 de agosto de 2010

Configurar Conexion Remota de Postgres : Gnu/Linux



Esto e smas que todo para aquellas personas que se estan adentrando en laadministraciondeservidoreslinux al igual que yo, bueno pues aqui les dejo algunos pasos, luego de instalar postgres

lo primero es que postgres acepte conexiones locales por consola para ello editamos el archivo :

sudo vim /etc/postgresql/8.4/main/pg_hba.conf

nota: pueden utilizar cualquier editor como estos ; pico, vi o gedit

en la linea 82 veran algo parecido a esto

# "local" is for Unixdomainsocket connections only
local all all ident
pues solo se tiene que hacer es cambiar la palabre ident por md5 quedando de esta manera!!


local all all md5
luego de esto lo primero es reiniciar el servicio para que los cambios se efectuen

sudo /etc/init.d/postgresql-8.4 restart

crear el usuario, para ello nos logueamos como postgres:

sudo su postgres

y les pedira la contraseña de su usuarion y loego el prompt cambiara de la siguiente manera

postgres@linux1187:/home/jean$

posterior a ello crear el usuario por ejemplo prueba


postgres@linux1187:/home/jean$ createuser pruebauser -W
luego crear la base de datos


postgres@linux1187:/home/jean$ createdb bd_prueba -O pruebauser

nota: si queremos cambiar la contraseña del usurio que ya creamos solo hacemos lo siguiente, una ves que nos hemos logueado como usuario postgres colocamos el comando

postgres@linux1187:/home/jean$ psql

y aparecera algo como esto

psql (8.4.4)
Digite «help» para obtener ayuda.
postgres=# alter user pruebauser with password '123';
postgres=# \q

y luego hacemos prueba de conexion local por consola con un usuario que no sea postgres

jean@linux1187:~$ psql -U pruebauser -W bd_prueba

colocan su contraseña y listo


una vez hecho esto, a lo que vamos; " hacer conexiones remotas"
sudo vim /etc/postgresql/8.4/main/postgresql.conf

en la linea 59 esta :
#listen_addresses = 'localhost'
Cambiar a ;
listen_addresses = '*'
y en la 82 esta :
#password_encryption = on

la almohadilla o ' # ' significa que esa linea esta comentada, solo tenemos que descomentarla y listo quedando de esta manera
password_encryption = on

luego de eso reiniciar el servicio
$ sudo /etc/init.d/postgresql-8.4 restart

y listo y si estamos en una lan probamos de otra maquina

$ psql -h 192.168.0.199  -U  pruebauser  -W  bd_prueba

y por ultimo para que se pueda ver la herramienta deadministracionde posgtres phppgadmin,en otras maquinas con solo colocar la ip/phppgadmin enel navegador de esta manerahttp://192.168.0.199/phppgadmin/

si tenemos instalado apache solo hace falta editar una linea en un fichero
$ sudo vim /etc/apache2/conf.d/phppgadmin

esto se hace si instalamos esta herramienta web por los repositorios

en la linea 10 : encontraremos

deny from all, 
lo comentamos y descomentamos la linea 13 allow from all ; quedando de esta manera

order deny,allow
#deny from all
allow from 127.0.0.0/255.0.0.0 ::1/128
allow from all






Configurar la lista de acceso

La configuración de la lista de acceso permite decirle a PostgreSQL qué método de autentificación usar y establecer relaciones de confianza para ciertas máquinas y redes. Hay que editar el fichero /etc/postgresql/8.2/main/pg_hba.conf:
$ sudo vi /etc/postgresql/8.2/main/pg_hba.conf
Al final del archivo se encuentra una lista de acceso predeterminada, ahora, dependiendo de su necesidad puedes hacer lo siguiente:
  • Si necesita que cualquier usuario se conecte por medio de una dirección IP en especifico, agregue al final la siguiente línea:
host all all 192.168.1.4 255.255.255.0 md5
Imagen:Nota clasica.pngLa dirección IP y la SubMascara de Red son ejemplos, cámbielas por datos del usuario que requiera realizar la conexión.
  • Si necesita que cualquier usuario se conecte por medio de una IP determinada sin importar el password (confiamos en dicha IP), la línea es:
host all all 192.168.1.4 255.255.255.255 trust
  • Si necesita que cualquier usuario (usuario de base de datos autentificándose, claro) se conecte por medio de cualquier dirección IP, agregue al final la siguiente línea:
host all all 0.0.0.0 0.0.0.0 md5
  • Si necesita que un usuario determinado se conecte a una base de datos determinada por medio de una dirección IP en especifico, agregue al final la siguiente línea:
host MyDataBase MyUser 192.168.1.4 255.255.255.0 md5
  • Guarda los cambios realizados en el archivo y reinicia el demonio para que los cambios surjan efecto:
$ sudo /etc/init.d/postgresql-8.2 restart
Imagen:Nota clasica.pngPara mayor información de la configuración de la lista de acceso, viste la pagina Web del proyecto de traducción del libro PostgreSQL Práctico, y consulta el capitulo Estructura del Archivo pg_hba.conf.



visto en Postgres-Ubuntu

y listo señores

esto es todo espero les sirva de algo, cabe destacar que yo hice las pruebas el ubuntu 10.04 pero como esta distro es hija de debian, no creo que haya problemas en la configuracion en debian, Saludos

2 comentarios:

  1. Excelente aporte gracias

    ResponderEliminar
  2. Me gusta usar con postgresql en linux - herramienta gratuita de Valentina Studio, hace todo lo que necesito, y lo hace muy bien http://www.valentina-db.com/en/valentina-studio-overview

    ResponderEliminar