diff --git a/2/ASGBD/assignments/manual-postgresql/imgs/00-postgresql-status.png b/2/ASGBD/assignments/manual-postgresql/imgs/00-postgresql-status.png new file mode 100644 index 0000000..26acb37 Binary files /dev/null and b/2/ASGBD/assignments/manual-postgresql/imgs/00-postgresql-status.png differ diff --git a/2/ASGBD/assignments/manual-postgresql/imgs/01-change-postgres-passwd.png b/2/ASGBD/assignments/manual-postgresql/imgs/01-change-postgres-passwd.png new file mode 100644 index 0000000..c9f365b Binary files /dev/null and b/2/ASGBD/assignments/manual-postgresql/imgs/01-change-postgres-passwd.png differ diff --git a/2/ASGBD/assignments/manual-postgresql/manual-postgresql.md b/2/ASGBD/assignments/manual-postgresql/manual-postgresql.md new file mode 100644 index 0000000..6d7fe08 --- /dev/null +++ b/2/ASGBD/assignments/manual-postgresql/manual-postgresql.md @@ -0,0 +1,88 @@ +# Manual de Instalación y Configuración PostgreSQL + +_Nicolás A. Ortega Froysa_ + +## Instalación de PostgreSQL + +Desde una máquina de GNU & Linux basada en Debian, podemos instalar el +PostgreSQL desde la línea de comando con el siguiente comando como `root`: + +```bash +apt install postgresql +``` + +Generalmente en los sistemas basados en Debian los servicios se inicializan al +instalarse, pero siempre conviene asegurarnos. Para esto veremos la salida del +estado actual de este servicio: + +![PostgresSQL status](imgs/00-postgresql-status.png) + +## Configuración de PostgreSQL + +Una vez instalado el PostgreSQL, hay que configurarlo para poder accederlo +remotamente. Primero hemos de configurar la contraseña del usuario `postgres`. +Esto se hace entrando en el usuario de sistema `postgres`, y entrando en la base +de datos usando el comando `psql`. Una vez conectado a la base de datos +configuramos la contraseña usando el comando siguiente: + +``` +alter user postgres with password 'postgres'; +``` + +![Change postgres password](imgs/01-change-postgres-passwd.png) + +Con esto aún es necesario cambiar la configuración de PostgreSQL como tal para +permitir acceso remoto (desde fuera de la misma máquina). Para esto, primero +editamos el archivo de configuración `/etc/postgresql/13/main/postgresql.conf` +para cambiar la directiva de `listen_addresses` a lo siguiente: + +``` +listen_addresses = '*' +``` + +Luego editamos el archivo de `/etc/postgresql/13/main/pg_hba.conf` y lo +cambiamos de la forma siguiente: + +``` +#host all all 127.0.0.1/32 md5 +host all all 0.0.0.0/0 md5 +``` + +Al hacer estos cambios podemos reiniciar el servicio para efectuarlos: + +``` +systemctl restart postgresql.service +``` + +## Firewalld + +Para tener un sistema seguro será necesario tener un _firewall_ instalado. Para +esto vamos a instalar a `firewalld`, una herramienta de RedHat. Esto se hace con +el comando `apt install firewalld`. Al instalarlo, para configurar que deje +abierto el puerto de PostgreSQL corremos los siguientes comandos como root: + +``` +$ firewall-cmd --permanent --zone=public --add-port=5432/tcp +$ firewall-cmd --reload +``` + +Esto abrirá el puerto 5432 al público. + +## Prueba + +Finalmente, para hacer una prueba, podemos conectarnos desde otra máquina a +nuestro servidor corriendo el comando siguiente e introduciendo la contraseña +que hemos configurado antes: + +``` +psql -h
-p -U postgres postgres +``` + +![PostgreSQL connect](imgs/02-postgresql-connect.png) + +## Derechos de Autor + +Copyright © 2022 Nicolás A. Ortega Froysa + +Este documento se distribuye bajo los términos y condiciones de la licencia +Creative Commons Attribution No Derivatives 4.0 International.