Playbooks para la gestión básica de infraestructura IT

Continuando con la automatización de configuraciones de nuestra infraestructura, en la Escuela Politécnica también hemos programado (y liberado) playbooks de Ansible relacionados con las tareas básicas que se realizan con los servidores de nuestros servicios IT.

Más información sobre estos playbooks en https://blogs.ua.es/labseps/?s=ansible&x=0&y=0

Y el software en https://github.com/EPSAlicante/ansibleEPS

¡Espero que os sea útil!


Monitorización de la infraestructura informática

Para asegurarnos que nuestros servicios de TI se están ofreciendo efectiva y eficientemente ( requerimientos de los usuarios, resolver fallos en el servicio, arreglar problemas y llevar a cabo operaciones rutinarias) debemos instalar y configurar herramientas que nos proporcionen información sobre el comportamiento de estos.

Nagios, Munin, OpenVas, cada uno en lo suyo, son aplicaciones libres que nos permiten obtener datos de disponibilidad, carga, seguridad,… que hace que sea, prácticamente, obligatoria su instalación, configuración y mantenimiento.

En la EPS hemos desarrollado una aplicación basada en Ansible que permite la automatización de las tareas relacionadas, entre otros, con Nagios, Munin y OpenVas.

Si no quieres, o puedes, calentarte la cabeza con la instalación de estos programas, pero quieres/necesitas usarlos, esta app es una magnífica opción (es obvio que no soy objetivo pero de verdad que lo digo porque lo pienso)

En el blog de mi unidad tenemos una entrada explicando la app y, también, sobre cómo conectarnos a la demo que hemos dejado libre para que se puede consultar cómo funciona.

El software que realiza toda la labor, lo hemos liberado: https://github.com/EPSAlicante/EPSMS

¡Espero que os sea útil!


App simple para esteganografía y marcas de agua en fotos e imágenes

La esteganografía es la aplicación de técnicas que nos permiten ocultar mensajes u objetos dentro de otros, llamados portadores, con el objetivo de que no se perciba su existencia. Uno de los usos que podemos darle es como “marca de agua” oculta pero que identifica al propietario de una imagen (aunque no ofrece garantías totales debido a los potenciales ataques que pueden realizarse).

Esto es lo que hace esta pequeña aplicación: por un lado marcar nuestras imágenes y, por otro, poder comprobar las marcas que hayamos introducido. Estas marcas son de texto y podremos ocultarlas, además, cifradas con AES, SHA-512 o HMAC-SHA512. Permite, además, insertar texto o una imagen como marca de agua  clásica, es decir, visible.

El proceso de marca de una imagen (ver figura 1) consiste en:

  1. Configurar el texto, contraseña y método de cifrado para la parte estego y el texto o imagen para la marcar de agua (junto con tamaño, dónde insertarlo, etc)
  2. Cargar la imagen a marcar
  3. Por último, marcar/firmar la imagen.
  4. Si queremos disponer de una copia de la imagen marcada (no cambia la original) debemos descargarla a nuestro disco. Si no lo hacemos, la perderemos con simplemente recargar la página.
  5. Por último, podemos guardar la relación texto, contraseña, método y nombre de la imagen para tener un historial de acciones que podamos consultar (para quien tenga tan mala memoria como yo 😉 ). ¡Y cuidado! Estas acciones se guardan en el almacenamiento interno del navegador (en concreto, Indexed DB), por lo que tendremos una copia en cada ordenador, sistema operativo y navegador que utilicemos para firmar imágenes.

Figura 1.- Proceso de firma de una imagen

El proceso de comprobación de firma (ver figura 2) se corresponde con la opción Decode del menú superior y es:

  1. Configurar el texto, contraseña y método de cifrado
  2. Cargar la imagen a marcar
  3. Chequear si el texto, con el cifrado introducido, está presente en la imagen.

Figura 2.- Proceso de comprobación de marca de una imagen

Para el proceso de esteganografía he usado esta librería que oculta la marca proporcionada en el canal alfa de la imagen dada. Este algoritmo aumenta (demasiado para mi gusto) el tamaño del fichero resultante, no funciona con imágenes con fondos transparentes y si se modifica la imagen (recortes, etc) se “pierde” la marca. Sería una buena idea sustituirlo por otro mejor (¿voluntarios/as? Yo dudo mucho que lo haga).

Por último, para seguir probando cosas con Angular (este era mi objetivo cuando empecé con esta app), añadí botones para publicar en redes sociales, aquellas que proporcionan un API rest para poder escribir, es decir, Twitter, Facebook, Pinterest y Flickr. Instagram no debido a que no permite (o permitía, no sé si ahora lo hacen) escribir.

La he probado tanto para GNU/Linux como Windows 10 con Firefox 45 y Chrome 52. También la he probado en mi móvil (Nexus 5), tomando una foto y, salvo publicar en RRSS (por tamaño de la foto) sí que ha funcionado el marcar/comprobar con estego y descargar la foto marcada.

¡Espero que os sea útil!

PD: Como es muy mejorable, he dejado los fuentes en https://github.com/jagilma

Guardar

Guardar


Presentaciones de la segunda parte de la asignatura “Servidores Web”

Aquí dejo las presentaciones que he usado en las dos última sesiones de la asignatura de Servidores Web del Máster Universitario en Desarrollo de Aplicaciones y Servicios Web.

En estas sesiones hemos tratado:

  • Nginx:

  • Nodejs (características y usos principales):

  • Pruebas en servicios web:

  • Cloud: AWS y Azure

¡Espero que os sea útil!


Transparencias de la asignatura “Servidores Web”

Aquí dejo las presentaciones que he usado en las dos primeras sesiones de la asignatura de Servidores Web del Máster Universitario en Desarrollo de Aplicaciones y Servicios Web.

La primera sesión fue sobre el protocolo HTTP:

La segunda sobre Apache:

¡Espero que os sean útiles!


Ejemplo de uso Oauth para publicar una imagen en Twitter

Este fin de semana he estado entretenido programando un back-end de ejemplo para publicar imágenes (con su correspondiente texto) en Twitter, usando la librería de PHP https://twitteroauth.com/ La idea era implementar en el servidor (“server-side flow” de OAuth) las llamadas al API de Twitter para conseguir la autorización y publicación de una imagen con su texto (que se recibe en la llamada al primer PHP).

El código es muy sencillo, hace lo justo, sin comprobaciones que no tengan que ver con el objetivo y su única finalidad es docente (por ahora).

Está dividido en 2 partes. La primera (twitter.php) es la que recibe la petición de publicación, obtiene el REQUEST_TOKEN y solicita la autorización del usuario. La segunda será invocada por el API de Twitter y se encargará de obtener el auth_token necesario para publicar la imagen con el texto asociado (status).

El código, que se explica solo, lo he publicado en https://github.com/jagilma/imageToTwitter

Creo que, además, es un ejemplo útil para conocer básicamente el proceso en el lado del servidor de OAuth2.

¡Espero que os sea útil!


Metadatos de ficheros con ‘find’

find es una orden presente en GNU/Linux que podemos utilizar para obtener mucha información. Es útil, por ejemplo, para saber qué ficheros se han modificado en un periodo de tiempo, por ejemplo, en las últimas 24 horas:

find . -type f -mtime 0

o los ficheros que tienen permisos de escritura tanto para el propietario como para su grupo:

find . -perm -220

También nos puede ofrecer información sobre la fecha o tiempo de acceso, modificación, de creación, tamaño que ocupa el fichero en bloques de 1K, número de inodos, número de enlaces duros,…, de los ficheros que cumplan ciertos criterios de búsqueda:

find . -mtime 0 -perm -111 -type f \
   -printf "%Ax;%AT;%Tx;%TT;%Cx;%CT;%m;%U;%G;%s;%k;%i;%p\n"

Esta orden nos mostrará la fecha y el tiempo de acceso, fecha y tiempo de modificación, fecha y tiempo de creación, permisos, identificador de usuario y grupo, tamaño del fichero, número de bloques de 1K, número de inodos y nombre del fichero (con -type f nos aseguramos que sean ficheros) que ha sido modificado en las últimas 24horas (-mtime 0) y que tiene permisos de ejecución habilitados para propietario, grupo y cualquier otro usuario (-perm -111).

¡Espero que os sea útil!

Referencias

  1. man find

Google authenticator como 2FA en Debian

El año pasado probé Google Authenticator como 2FA en una CentOS. Hoy he usado la información de esa entrada para configurar, ¡por fin!, un 2FA para el acceso por SSH a mi almacenamiento personal.

Como la distro es Debian, hay un pequeño cambio: el paquete que debemos tener instalado:

apt-get install libpam0g-dev

Debemos tener instalado tanto gcc como make para poder compilar la librería de google.

Un detalle más es que, al contrario de lo que comenté en mi anterior entrada, para configurar mi Android he preferido usar la secret key que obtenemos al ejecutar Google Authenticator para el usuario que queremos proteger.

¡Espero que os sea útil!


Error ‘not found’ en la carga de un fichero con init-file de MySQL

De vez en cuando recurro a este mecanismo de MySQL para cambiar la contraseña del administrador.

En las distribuciones que tengan activo apparmor es muy probable que no funcione (dependerá, como vamos a ver, de la configuración apparmor) dando el error (que encontraremos en /var/log/mysql/error.log):

[ERROR] /usr/sbin/mysqld: File '/path_al_fichero/nuevopasswd.sql' not found (Errcode: 13)

(obviamente, estoy suponiendo que el fichero existe y tenemos permisos de lectura 😉 )

El error, como ya podéis imaginar, está provocado por apparmor y, para conseguir nuestro objetivo (ejecutar el fichero para cambiar la contraseña) debemos habilitar la ejecución del guión. Para ello:

  • En el fichero /etc/apparmor.d/usr.sbin.mysqld añadimos la orden ‘/path_al_fichero/*.sql r, ‘ dentro de las opciones de MySQLCaptura de pantalla de 2015-07-03 16:44:08
  • Reiniciamos apparmor: /etc/init.d/apparmor reload
  • Reiniciamos MySQL: /etc/init.d/mysql restart

¡Espero que os sea útil!

PD: La imagen no representa el fichero /etc/apparmor.d/usr.sbin.mysqld completo; donde están los ‘……’  hay otras opciones necesarias para que convivan apparmor y MySQL.


Transparencias de clase sobre “Firewalls”

Continuando con las publicaciones de viejas transparencias de clase de Administración e Instalación de Redes de Computadores, en particular, de las que dedicaba a seguridad en red, hoy toca el turno de la presentación que hice sobre el diseño y configuración de cortafuegos. Para estas transparencias usé como principal fuente de información el libro “Building Internet Firewalls” de D. Bremt Chapman y Elizabeth D. Zwicky, editado por O’Reilly.

¡Espero que os sea útil!


Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más información.