Mostrando entradas con la etiqueta PostgreSQL. Mostrar todas las entradas
Mostrando entradas con la etiqueta PostgreSQL. Mostrar todas las entradas

viernes, 21 de mayo de 2021

Postgres en Mac: primeros pasos de ciberseguridad

La instalación de postgreSQL crea automáticamente un usuario postgres para uso interno del sistema, no para uso del usuario DBA.

Cuando uno piensa en ciberseguridad, generalmente uno se imagina en las más recientes técnicas de ciberescudos, vacunas y escaneos profundos de las computadoras; algo así como las mejores tecnologías de contraespionaje. Dejando todo lo hollywoodense a un lado, el 90-95% de la ciberseguridad es puro sentido común y utilizar una configuración pensada en técnicas recomendadas, nada más.
La ciberseguridad en PostgreSQL empieza con una configuración correcta.

Esto se puede comprobar en la terminal con el comando:

dscl . list /Users | grep -v '_'

Y se puede comprobar su "accesibilidad" al usuario final en Preferencias del Sistema → Usuarios y Grupos. Los usuarios que aparecen ahí son los llamados "accesibles" al usuario:

La instalación original de EDB instala un usuario postgres solamente accesible para el sistema. Yo creé un usuario postgres antes de la instalación para evitar problemas.

El problema de "accesibilidad" puede evitarse creando un usuario postgres antes de empezar el proceso de instalación y, de hecho, ejecutar la instalación con este usuario.

Otra característica de la instalación mediante el paquete EDB de postgrreSQL en Mac es que instala y configura scripts para el inicio automático del servidor (también llamado motor de DB) de PostgreSQL. Esto es deseable a veces y a veces no. Casi siempre es deseable que el servidor de PostgreSQL inicie automáticamente con la máquina y además que el DBA tenga control sobre el inicio o parada (reseteo) del servidor.
El archivo de inicio automático es:

     /Library/LaunchDaemons/com.edb.launchd.postgresql-13.plist

los. archivos .plist en macOS son archivos de configuración y son simplemente archivos de texto en formato XML 1.0. Se pueden editar manualmente con cualquier editor de texto. Las líneas de texto que controlan el inicio automático del servidor PostgreSQL son:
 <key>RunAtLoad</key>

     <true/>

si se quiere cambiar la configuración de default, arrancando al inicio, se debe cambiar la línea <true/> a <false/>.


Hay que notar que el archivo pertenece a root, si se quiere editar este archivo, hay que iniciar sesión como administrador del sistema, habilitar el usuario root, iniciar como usuario root, entrar a terminal y editar el archivo. Técnicamente la edición podría hacerse con la sesión de cualquier otro usuario mediante su o sudo, pero hacerlo directamente en sesión de root es más fácil y directo.

Pantalla de inicio de sesión del usuario root.

Nota: hay que recordar que en macOS el usuario root está deshabilitado por default. Para poder iniciar sesión con root primero hay que habilitarlo. Apple proporciona esta facilidad en macOS para poder hacer administración en el sistema, pero también hay que deshabilitarlo cuando se termina de usar. Dejarlo habilitado es una grave violación a la ciberseguridad.

Una vez editado el archivo .plist de postgresql, se puede reiniciar la Mac y revisar procesos en la terminal, el servidor postgres ya no debe estar arriba. O se puede reiniciar el motor de postgres mediante

     pg_ctl stop -D/Library/PostgreSQL/13/data y
  pg_ctl start -D/Library/PostgreSQL/13/data

Reinicio del servidor PostgreSQL en macOS; una de las ventajas  del arranque mediante comando, es que uno puede controlar los diversos parámetros de apertura, por ejemplo, la creación de logs.


Fecha espacial 6746.97

viernes, 26 de febrero de 2021

Instalación de Postgresql en la Mac

El empaquetado para instalación en Macintosh lo hace la empresa Enterprise DB (EDB).

La versión más reciente de PostgreSQL es la 13.2

El primer paso es bajar el DMG (Disk IMage, equivalente al formato ISO):


Abriendo el archivo DMG (haciéndole doble click, por ejemplo):

Y corriendo la app de instalación (otra vez doble click):
Haciendo click en el botón "Siguiente >":
Uno puede especificar el directorio de instalación. La ruta que aparece ahí es la que usa por default.

Haciendo click en el botón "Siguiente >":
Componentes que se desea instalar. Cuando uno sombrea un componente, su descripción aparece en la parte derecha de la ventana, obviamente que el PostgreSQL Server es el componente principal, es el motor básico de postresql, supongo que no hay descripción debido a que es el componente principal.

Recorriendo los componentes a instalar:
pgAdmin es el programa de ambiente gráfico (actualmente es a través de web) para administrar y trabajar con Postgresql. Su instalación es casi obligatoria, exceptuando a los que prefieren las herramientas CLI o prefieren usar otro cliente.


Recorriendo los componentes a instalar:

Stack Builder es una utilería que sirve para detectar e instalar add-ons, herramientas adicionales y  programas de prueba para Postgresql. No es necesario, pero es útil.

Recorriendo los componentes a instalar:

Herramientas y librerías CLI (Command Line Interface, es decir, sin ambiente gráfico). Se recomienda instalar las herramientas, pero las librerías son un requisito.

Haciendo click en el botón "Siguiente >":

Capturar el directorio donde se van a guardar los datos. La ruta que se muestra es la que el sistema pone por default.

Haciendo click en el botón "Siguiente >":

Definición del password del super-usuario. Hay que tener en cuenta que el usuario postgres solamente es super-usuario en el ambiente de base de datos, y de hecho solamente existe ahí. La Mac no lo va a reconocer hasta que lo creemos.

Haciendo click en el botón "Siguiente >":


Haciendo click en el botón "Siguiente >":

La configuración regional se refiere el conjunto de caracteres a utilizar en las bases de datos a crear. Si la Mac está configurada a trabajar en español, ese va a ser el conjunto de caracteres por default.

Haciendo click en el botón "Siguiente >":

Una vez configurados todos los parámetros de instalación, se nos presenta una ventana de resumen o sumario con toda la información para revisarla.

Haciendo click en el botón "Siguiente >":

Confirmación.

Haciendo click en el botón "Siguiente >":

Una vez confirmado, se muestra una ventana con el estado de la instalación.

Haciendo click en el botón "Siguiente >":

Confirmación de finalización. El programa de instalación muestra una opción para correr Stack Builder. Stack Builder es un programa independiente al programa de instalación.

Haciendo click en el botón "Terminar". Termina la rutina de instalación e inicia Stack Builder:

Pantalla de presentación de Stack Builder. Este programa presenta sus textos en inglés.

Haciendo click en el botón "Next >":

Presentación de las categorías que puede instalar.

Haciendo click en las categorías disponibles (Add-ons, tools and utilities):

Programas que se pueden instalar en la primera categoría (add-ons, herramientas y utilerías), en la parte de abajo de la ventana aparece un texto explicativo.

Haciendo click en las categorías disponibles (Database drivers):


Haciendo click en las categorías disponibles (Registration-required and trial products):


Haciendo click en las categorías disponibles (Replication Solutions):


Haciendo click en las categorías disponibles (Spatial Extensions):


Haciendo click en el botón "Next >":

Cuando ya se han seleccionando los productos a agregar a Postgresql, Stack Builder presenta una ventana de resumen donde también se puede especificar un directorio para guardar los downloads (el default es el mismo que se especificó para el navegador. Hay que notar que los añadidos son –generalmente– archivos .ZIP que se deben instalar manualmente.

Una vez que se hace click en el botón "Next >", Stack Builder empieza a bajar los paquetes pedidos y termina.

Para confirmar la instalación, se pueden seguir los siguientes pasos:

1. Confirmar procesos postgres en la terminal:


2. Confirmar que se haya instalado como aplicación (Nota: aquí solamente van a estar los programas accesibles al usuario final, el directorio real de instalación está en Library, no en Aplicaciones):


3. Confirmar directorio de instalación (nota: por default, postgresql se instala en el fólder "Library", si tienen la Mac configurado en español este fólder se llama "Biblioteca"; hay que recordar que los programas macOS obtienen los nombres de los objetos de recursos en común, no es que existan dos veces o haya fólders repetidos o algo así:


Fecha  espacial: 6676.12