The Information Systems and Computer Applications examination covers material that is usually taught in an introductory college-level business information systems course.

Posts tagged “Languages

Cambio en los Senconds_Behind_Master en MySQL 5.6 by Jordi Prats

En los cambios de MySQL 5.5 a MySQL 5.6 podemos encontrar el siguiente comentario que puede sonar raro:

Important Change: Replication: Formerly, the value of the Seconds_Behind_Master column in the output of SHOW SLAVE STATUS was always set to NULL whenever the SQL thread or the I/O thread was stopped. Now, this column is set to NULL only if the SQL thread is not running, or if the I/O thread is not running following a check to determine whether or not the SQL thread has processed all of the relay log. (If the SQL thread has finished processing and the I/O thread is running, Seconds_Behind_Master is 0.) (Bug #12946333)

Suena raro que se diferencie entre “stopped” y “not running”, pero tiene su explicación.

 

Podemos encontrarnos que los Seconds_Behind_Master vayan creciendo linealmente:

SBM creciendo linealmenteSBM creciendo linealmente

Revisando los logs nos encontraremos con el siguiente error:

121122 17:20:41 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL
thread with "SLAVE START". We stopped at log 'binlog.000050' position 877769220

Lo que esta pasando es que por el bug anteriormente comentado (#12946333) el thread esta corriendo pero no esta actualizando, por lo que como que no esta “stopped” el Seconds_Behind_Master no esta a NULL.

Por lo que lo que nos encontramos en versiones de MySQL 5.5 y anteriores es que aparece un error en los camposLast_Error y Last_Errno. Por suerte no ocurre con todos los errores de replicación sino algunos.

Por lo tanto, para comprobar si se ha roto la replicación en MySQL 5.5 en lugar de mirar si elSeconds_Behind_Master esta a NULL, deberemos mirar si el Last_Errno no esta a 0

Tags: 

Relacionados

 

Enhanced by Zemanta
Advertisements

Ficheros temporales de MySQL by Jordi Prats

En MySQL existe la directiva tmpdir que indicamos el directorio que debe usar para crear ficheros temporales. Aún así, existen otros ficheros temporales que no se crean el dicho directorio.

 

Si definimos la directiva tmpdir veremos que allí crea ficheros con los datos de queries que no le caben en memoria (HEAP) y hace la operación (por ejemplo un sort) en disco:

# grep tmp /etc/my.cnf
tmpdir				= /var/mysql/tmp
# ls /var/mysql/tmp
#sql_22c8_0.MYD  #sql_22c8_0.MYI  #sql_22c8_1.MYD  #sql_22c8_1.MYI

Pero en el datadir también podemos ver en alguna ocasión ficheros temporales que ignoran la directiva tmpdir. En el caso de MyISAM ficheros TMM:

-rw-rw---- 1 mysql mysql 7684096 Nov 16 08:56 xbt_announce_log#P#p48.MYI
-rw-rw---- 1 mysql mysql    1024 Nov 16 08:56 xbt_announce_log#P#p52.TMM
-rw-rw---- 1 mysql mysql 7733248 Nov 16 08:56 xbt_announce_log#P#p51.MYI
-rw-rw---- 1 mysql mysql 7702528 Nov 16 08:56 xbt_announce_log#P#p50.MYI

O en el caso de InnoDB se forman con un identificador de la query:

-rw-rw---- 1 mysql mysql      13632 Nov 16 08:59 #sql-4731_a5b2.frm
-rw-rw---- 1 mysql mysql   28311552 Nov 16 08:59 #sql-4731_a5b2.ibd

Estos ficheros temporales en el datadir se producen cuando realizamos un OPTIMIZE sobre la tabla. Se tratan de ficheros temporales muy diferentes de los que nos referimos con la directiva tmpdir.

Con tmpdir indicamos los ficheros que corresponden a operaciones con los datos. Mientras que los ficheros temporales que se crean en el datadir son las propias tablas que se están recreando.

Tags: 

Relacionados

 

Enhanced by Zemanta

Honeypot con Kippo – III by Alejandro Ramos

Como vimos en entradas anteriores Kippo guarda un registro de los comandos que se introduce en la shell en formato binario. Este log se reproduce como un vídeo utilizando el script playlog.py ubicado en la ruta utils/
Otra opción mucho más cómoda es instalar Ajaxterm y acceder a ellos vía web. Ajaxterm es un terminal escrita en python y javascript,  que escucha como un nuevo servicio.
Los ficheros de 112 bytes (en mi caso) no contienen datos, por lo que pueden ser eliminados directamente con el comando: find /var/chroot/usr/local/src/kippo/log/tty -size 112c -exec rm {} \;

Para instalarlo  hay que descargar el software, parchearlo y editar su configuración, ya que hay rutas escritas en el propio código que se debe modificar por las que emplee nuestra configuración de Kippo.

En la línea 409 y 410 se modificarán  dejándolas así (siempre y cuando se ejecute fuera del chroot)

Una vez modificado, se arranca llamando al script mediante el comando: python ajaxterm.py, que a diferencia de lo que dice al iniciar, escucha en todas las interfaces (0.0.0.0) en el puerto 8022 por defecto y modificable con el parámetro -p. Por lo que es recomendable usar iptables o modificar el script para limitar su acceso (en la línea 570, cambiando el 0.0.0.0 por la IP, por ejemplo: 127.0.0.1).

 

Para visualizar los logs, se accede a la URL con el parámetro: /playlog/?l=[FICHERO], donde [FICHERO] equivale al nombre del archivo del directorio log/tty a visualizar.
Se pueden ver bastantes ejemplos online, como el que se muestra en esta página web: http://kippo.rpg.fi/playlog/?l=20100316-233121-1847.log

 

 

 

Enhanced by Zemanta

Honeypot con Kippo – II by Alejandro Ramos

Una vez Kippo lleva registrando datos de incautos script-kiddies que lanzan sus herramientas de fuerza bruta contra todo Internet, es hora de ver esa información y explotarla.

Para ese propósito existen herramientas externas como Kippo-Graph , actualmente en su versión 0.7.2, que por cierto, tiene un XSS , que espero solucionen pronto.

Es necesario disponer de un sistema con PHP y MySQL sobre el que ejecutar la aplicación. El php ha de tener soporte para la librería de gráficos GD (php-gd) y el propio módulo para conectar a MySQL (php-myslq).

Lo primero es descargar el código, descomprimirlo allí donde se vaya a instalar y cambiar los permisos a la carpeta donde se crean las gráficas.

 

Lo siguiente es configurar el archivo config.php acorde al usuario y contraseña creado en la base de datos del MySQL.

Una vez hecho, se accede al directorio vía web del tipo http://ip/kippo-graph, y desde la página principal se generan las imágenes. El código no es demasiado bueno y la generación de gráficos no es en tiempo real.
Si queréis parchear el XSS, tan solo hay que anteponer la función htmlentities() en las llamadas a $row[‘input’]. Para que queden las líneas de la forma: htmlentities($row[‘input’])

La aplicación genera unos resultados bastante llamativos, como se muestran en las siguientes capturas:

 

 

Enhanced by Zemanta