Sunteți pe pagina 1din 5

Preparación y configuración de la máquina virtual

Juan Sebastián Parada Celis


Facultad de Ingenierı́a
Universidad Distrital Francisco José de Caldas
Bogotá, Colombia
jsparadac@correo.udistrital.edu.co

Abstract—In this document the procedures for the configura- B. Yum


tion and preparation of the virtual machine are summarized.
Initially, the configuration of the machine connections is shown. Yum, es el gestor de paquetes para sistemas Linux basa-
Afterwards, the installation and configuration of postgreSQL is dos en RPM. Hace parte del proyecto Linux@DUKE de
shown. Finally, the public keys and the generation of backup files la Universidad de Duke. Es capaz de consultar para obtener
are published. información acerca de los paquetes disponibles, ir a buscar los
Index Terms—Bases de datos, postgreSQL, CentOS. paquetes de los repositorios, instalar y desinstalar y actualizar
todo un sistema a la última versión disponible. Yum realiza
I. I NTRODUCCI ÓN la resolución automática de dependencias de paquetes que
va a actualizar, instalar o quitar, y por lo tanto es capaz
Con el fin de preparar las maquinas virtuales de la asignatura de determinar automáticamente, ir a buscar, e instalar todos
de bases de datos para el trabajo del semestre, se deben realizar disponibles dependen de los paquetes.
instalaciones y configuraciones sobre las mismas. El presente
informe hace un resumen de dichas configuraciones sobre la C. PostgreSQL
máquina virtual. PostgreSQL es un sistema gestor de bases de datos objeto-
relacional de propósito general. Se le considera el sistema de
II. M ARCO T E ÓRICO base de datos de código abierto más avanzado. PostgreSQL
fue desarrollado con base a PostgreSQL 4.2 en Berkeley,
A. CentOS en el Departamento de Ciencias de la Computación de la
La distribución de CentOS Linux es un sistema operativo Universidad de California.
libre, derivada de las fuentes de Red Hat Enterprise Linux
(RHEL). Desde marzo de 2004, CentOS Linux ha sido una Llamado Postgres originalmente, fue creado en la Universidad
distribución respaldada por la comunidad derivada de fuentes de California por un profesor de informática llamado Michael
proporcionadas libremente al público por Red Hat. Stonebraker, que pasó a convertirse en el director de
tecnologı́a de Informix Corporation. Stonebraker comenzó
Según sus siglas, CentOS significa sistema operativo con Postgres en 1986 como un proyecto de seguimiento a su
empresarial de la comunidad (Community ENTerprise predecesor, Ingres.
Operating System). Desde el año 2014 RedHat patrocina el
proyecto CentOS.

La comunidad resalta principalmente tres caracterı́sticas


de CentOS:
- Estabilidad
- Seguridad
- Mantenimiento y Soporte

Fig. 2. Logo de PostgreSQL

D. Cifrado asimétrico
La criptografı́a asimétrica, implica el uso de dos claves
Fig. 1. Logo de CentOS separadas, en contraste con el cifrado simétrico que usa solo
una clave. El uso de dos claves tiene profundas consecuencias
en las áreas de confidencialidad, distribución de claves y
autenticación.

Fig. 4. Configuración de las variables para el Proxy


Fig. 3. Esquema general del cifrado asimétrico

de configuración del gestor de paquetes de CentOS, Yum.


E. Algoritmo de cifrado RSA Esto ultimo se realiza con la variable proxy. Esto se puede
El algoritmo RSA es uno de los métodos de cifrado de clave ver en la figura 4.
pública más populares y seguros. RSA implica dos claves: una
clave pública y una clave privada. Como sugieren los nombres,
a cualquiera se le puede dar información sobre la clave pública,
mientras que la clave privada debe mantenerse en secreto.
III. C ONFIGURACI ÓN DE LA M AQUINA V IRTUAL
A continuación se presenta unresumen del trabajo realizado
para la configuración de la maquina virtual CentOS ubicada
en los servidores de la Facultad de Ingenierı́a.
A. Configuración del Proxy y descarga de PostgreSQL
Dado que la máquina virtual que se va a utilizar para las
practicas de laboratorio está ubicada en los servidores de la
universidad, es necesario configurar el proxy de la maquina de
Fig. 5. Configuración del Proxy para Yum
acuerdo a la dirección IP de la universidad, con el segmento
10.20.4.15:3128. Esto se hace sobre el fichero profile del
Cabe recordar que el proxy se debe configurar para que la
directorio etc de CentOS. Este fichero controla las variable
maquina pueda tener conexión a internet.
predeterminadas del sistema.
Posteriormente, se descargará postgreSQL. Este procedimiento
es bastante sencillo, siguiendo la guı́a que se encuentra en la
El fichero hosts del directorio etc se utiliza para obtener una
pagina web oficial de postgreSQL. Para esto, lo primero es
relación entre un nombre de máquina y una dirección IP: en
instalar el repositorio de postgreSQL. Este se adquiere a través
cada lı́nea de /etc/hosts se especifica una dirección IP y los
de los paquetes RPM, seguido de esto se instalan los paquetes
nombres de máquina que le corresponden, de forma que un
cliente, y por ultimo los paquetes del servidor. Los comando
usuario no tenga que recordar direcciones sino nombres de
utilizados para esta tarea son:
hosts. De esta forma se puede ingresar a los equipos que
estén en los rangos de las direcciones que estén en el fichero. • yum install
https://download.postgresql.org/pub/
127.0.0.1 bases2-25.udistrital.edu.co repos/yum/9.6/redhat/rhel-7-x86_64/
10.20.252.25 bases2-25.udistrital.edu.co pgdg-centos96-9.6-3.noarch.rpm
10.20.251.25 localhost • yum install postgresql96
Estas lineas se añaden para la configuración de los hosts a
los que se puede acceder. • yum install postgresql96-server

Con el comando export se puede transferir el valor de Finalmente para inicializar la base de datos se ejecuta el
las variables del proxy para que alcance a todos los comando initdb sobre el fichero de la configuración de post-
subprocesos del sistema operativo. En la figura 3 se puede gresql. Este comando crea un nuevo cluster de base de datos
ver la configuración del proxy en el fichero profile. PostgreSQL. Este procedimiento se puede ver en la figura 6.
Además de configurar el proxy para los subprocesos en el El modo init o initdb crea un nuevo clúster de base de datos
fichero profile, es necesario configurar el proxy en el archivo PostgreSQL. Un clúster de base de datos es una colección
ver la salida por consola de ejecutar el método start para
pg ctl

Fig. 6. Resultado de la instalación de postgreSQL

Fig. 9. Ejecución del método start del fichero pg ctl

Fig. 7. Inicializando la base de datos


Siguiendo con lo anterior, ahora se configurará las conex-
iones y los puertos desde los cuales escuchará el servidor de
de bases de datos administradas por una sola instancia de postgreSQL. Esto en el fichero postgresql.conf, que está ubi-
servidor. cado en la variable $PGDATA. Las lineas que se editarán son
listen addresses y port. La primera, especifica las direcciones
IV. C ONFIGURACI ÓN DE P OSTGRE SQL TCP / IP en las que el servidor debe escuchar las conexiones
Los datos necesarios para la configuración del cluster de de las aplicaciones del cliente. Por su parte la variable port,
la base de datos de postgreSQL se ubica generalmente es el puerto TCP en el que el servidor escucha. Su valor por
en /var/lib/ pgsql/data. Desde el usuario postgres, se debe defecto es 5432. Por ultimo se ejecuta el método restart del
configurar la variable PGDATA que es la que contendrá la fichero pg ctl. Para probar que las configuraciones realizadas
ubicación de estos datos para el cluster de la base de datos.
Esa variable debe estar ubicada en el fichero bash profile
ubicada en el directorio home.

Otra ubicación que se necesita para la configuración de


postgreSQL es la variable PATH que en este caso contendrá
archivos binarios para poder ejecutar ordenes en postgreSQL.

Fig. 10. Configuración de conexiones

anteriormente estén bien, se crearán usuarios y tablas desde


postgreSQL. Para esto, se accede desde la terminal a través
del comando psql. Cómo se está trabajando desde el cluster
de bases de datos de postgreSQL, este trabajo se hace a través
de sentencias SQL. Las sentencias utilizadas fueron:
• alter user postgres
Fig. 8. Las variables pgdata y path en el fichero bash profile with password ’***’;
(Para asignar contraseña al usuario postgres)
Ahora que las variables del entorno para PostgreSQL están • create user usuario
configuradas para su funcionamiento. Con el fichero pg ctl with password ’***’;
se lleva el control de procesos sobre el cluster de la base de (Para crear un nuevo usuario)
datos. Este fichero maneja los procesos de iniciar, detener o • create database prueba;
reiniciar el servidor de base de datos, además de mostrar el (Para crear una base de datos)
estado de un servidor en ejecución. En la figura 8, se puede • alter database prueba
owner to usuario;
(Asigna usuario como propietario a la base de datos
prueba)
La autenticación del cliente se controla mediante un
archivo de configuración, que tradicionalmente se denomina
pg hba.conf y se almacena en el directorio de datos del
clúster de la base de datos. (HBA significa autenticación Fig. 12. Utilizando pg dump y scp para crear y compartir backups
basada en host). Un archivo pg hba.conf predeterminado se
instala cuando initdb inicializa el directorio de datos.
GNU/Linux es utilizado como medio de comunicación entre
En el fichero descrito anteriormente, se encuentra el dos o mas equipos. Esto hace parte del cifrado asimétrico,
registro host. Este registro coincide con los intentos de que en este caso trabaja con el algoritmo RSA. Para la
conexión realizados con TCP / IP. En este registro se incluye generación de estas llaves se utiliza el comando sshkeygen, el
la base de datos, el usuario y el segmento de direcciones que cual es una herramienta para crear nuevos pares de claves de
puede tener conexión con la base de datos, y el método por autenticación para SSH. Dichos pares de claves se usan para
el cual se van a conectar. automatizar inicios de sesión, inicio de sesión único y para
autenticar hosts. En el directorio .ssh del home, se pueden
ver las dos llaves generadas. En las figuras 13 y 14 se pueden
ver los comando utilizados anteriormente.

Fig. 11. Registro host del fichero postgresql.conf

V. C OMPARTIR LLAVES P ÚBLICAS Y GENERAR BACKUP Fig. 13. Ejecución del comando sshkeygen

Con el fin de que se tenga un archivo de respaldo para


la base de datos, se creó un archivo backup. Esto, a través
de la utilidad pg dump.Esta es una utilidad para hacer una
copia de seguridad de una base de datos PostgreSQL. Realiza
copias de seguridad consistentes, incluso si la base de datos Fig. 14. Llaves públicas y privadas generadas
se está utilizando al mismo tiempo. Estos archivos se pueden
generar en formato sql. Esta herramienta tiene la capacidad Se utilizan las llaves públicas y privadas para que al
de crear volcados comprimidos y no comprimidos de su base momento en que un usuario quiera acceder a un equipo
de datos. En este caso se realizó un backup no comprimido anfitrión desde un equipo externo, lo pueda hacer sin necesidad
para la base de datos creada (prueba). de que el equipo anfitrión pida la contraseña. Dado que la
configuración de los hosts permite poder acceder a los ficheros
Ya con el archivo del backup generado, se puede compartir el y directorios de otro equipo dentro del mismo segmento IP,
archivo con otro equipo. Esto lo permite la configuración de se debe añadir el contenido de la clave publica generada en el
los host que se hizo en la primera parte de la practica. Para equipo externo al fichero authorized keys del equipo anfitrión.
eso, se utiliza el comando scp. El comando scp copia archivos Este fichero especifica las claves SSH que pueden usarse
o directorios entre un sistema local y un sistema remoto, o para iniciar sesión en la cuenta de usuario para la que está
entre dos sistemas remotos. El comando scp utiliza ssh para configurado el archivo. En la figura 15 se puede ver la forma
la transferencia de datos. Por lo tanto, el comando scp usa la que tiene la llave pública. Para generar copias de respaldo de
misma autenticación y proporciona la misma seguridad que la base de datos, es necesario generar un archivo de tipo shell,
el comando ssh. En la figura 12 se puede ver la ejecución de y configurar su ejecución para que sea cada cierto periodo de
las dos sentencias mencionadas anteriormente. tiempo. Esto se puede hacer con un documento que contenga
las lineas de la figura 16. En la primera linea, se accede a la
El uso de llaves publicas y privadas dentro de distribuciones fecha actual del sistema, despues con el comando pg dump, se
El buen uso de una distribución como CentOS garantiza la
buena gestión de la seguridad de las bases de datos. Dado que
está basado en RedHat, garantiza la estabilidad operacional
de la distribución, además del patrocinio y por ende la
sostenibilidad del proyecto.
Fig. 15. Llave pública
VII. R EFERENCIAS
1) Postgres. Documentación oficial.Disponible en:
genera un fichero backup con la fecha actual, posterior a esto,
https://www.postgresql.org/docs/
se comprime el fichero con la herramienta bzip2. Por ultimo,
2) Oracle. Gestión de sistemas re-
se comparte el fichero en otro equipo. Finalmente, para que se
motos en Oracle. Disponible en:
https://docs.oracle.com/cd/E37929 01/html/E36611/toc.html
3) SSH. What is keygen. Disponible en:
https://www.ssh.com/ssh/keygen/
4) Universidad de Duke. LinuxDuke. Disponible en:
https://sites.duke.edu/linux/
Fig. 16. Generar backup de la base de datos
5) RedHat. Guı́a de Desarrollo RHEL. Disponible
en: https://access.redhat.com/documentation/en-
genere este archivo de respaldo cada cierto tiempo, se utiliza el us/red hat enterprise linux/6/html/deployment guide/
comando crontab. El crontab (abreviatura de ”tabla cron”) es 6) TutorialsPoint. PostgreSQL Overview. Disponible
una lista de comandos que están programados para ejecutarse en: https://www.tutorialspoint.com/postgresql/postgresql
en intervalos de tiempo regulares. El comando crontab abre overview.htm
crontab para editar y le permite agregar, quitar o modificar
tareas programadas.
0 9 * 0 * sh backup.sh
En esta configuración se ejecuta el archivo que genera el
backup todos los lunes a las 9:00 AM. Para que no se

Fig. 17. Resultado de la ejecución de crontab

almacenen demasiado archivos de respaldo, se puede modificar


el fichero backup.sh con la siguiente linea:
1. find /home/postgres/*.sql
-mtime +21 -exec rm{}/;
2. find /home/postgres/*.bzip2
-mtime +21 -exec rm{}/;
3. ssh backup@10.20.251.33
4. find backup@10.20.251.33:/
home/postgres/*.sql -mtime
+21 -exec rm{}/;
5. find backup@10.20.251.33:/
home/postgres/*.bzip2 -mtime
+21 -exec rm{}/;
Con las lineas 1 y 2 se borran los archivos locales. Con las
otras tres lineas, se ingresa a otro equipo y se borran los
archivos backup generados.
VI. C ONCLUSIONES
Utilizar postgreSQL garantiza que se utilice una herramienta
en constante diseño y actualización dado su modelo de
construcción que es a través de la comunidad.

S-ar putea să vă placă și