¿Qué es la paridad en una configuración de RAID?

Bueno, mi última entrada había sido explicar qué es un RAID y raíz de eso me han preguntado otra cosa ¿Qué es la paridad?

Bueno, la información de paridad es un tipo de redundancia que nos permite recuperar los datos al vuelo en caso de que falle algún disco. Esto también lo permite una copia en espejo (RAID 1), pero con una diferencia: En el artículo anterior veíaimos que en un RAID 1 tenemos todo un disco ocupado con los datos redundantes, en cambio en un RAID 5 decíamos que solo ocupábamos el equivalente a un disco para almacenar la paridad, si tenemos cuatro discos aprovechamos el espacio de 3 ¿Qué brujería es esta? Pues una brujería matemática.

La información de paridad es una informacion calculada operando con el resto de datos de la misma división. De esta forma si se rompe un disco podemos recuperarlos comparando los datos que tenemos con los de paridad. Por poner un ejemplo simplificado, pensemos en álgebra sencilla. Imagina que calculásemos la paridad sumando los valores de los sectores de una misma división: El valor del sector 1 sería 1, del sector 2 sería 2, del sector 3 sería 3 y la paridad sería su suma ( 1+2+3=6 ). Si se rompiese el disco que conteía el sector 2 tendríamos esto en nuestros discos: 1+X+3=6. Podemos resolver la ecuación para saber que X era 2 antes de tener que cambiar el disco. Aunque el cálculo de paridad es realmente más complejo, esencialmente sería algo así.

Los sistemas de paridad simple más sencillos suelen usar la operación XOR para hacer estos cálculos a nivel de bit. Los sistemas más complejos, por ejemplo la doble paridad del RAID 6, utilizan operaciones más complicadas como un código Reed-Solomon u operaciones sobre un campo de Galois concreto. El requerir operaciones más complejas para calcular la paridad provoca que la velocidad de escritura sea menor, a cambio de conseguir una mayor tolerancia a fallos ya que podrían fallar hasta dos discos sin que perdamos datos.

Configurando un extensor wifi Edimax EW-7438RPn

Cada vez que voy a casa de mis padres me quedo con las ganas de ver un partido de la NBA o alguna serie en el portátil, ya que la wifi no llega hasta el último piso. Así que hoy  (que Netflix estrena la segunda temporada de Daredevil) he decidido poner un repetidor en la escalera para amplificar la señal. El modelo elegido ha tenido que ser un Edimax EW-7438RPn sí o sí, era la única opción que tenía en la tienda.

Por un lado hay que decir que el escueto manual de instrucciones que trae está sólo en inglés, por lo que los no anglo-parlantes pueden sentirse durante un momento abrumados. El lado bueno es que su configuración es muy simple. Hay dos opciones:

  • En caso de tener un dispositivo iOS o Android en ambos stores hay una aplicación llamada EdiRange, proporcionada por el fabricante, que os permitirá acceder a la configuración. Tiene muy malas críticas en el store.
  • El extensor además puede ser configurado accediendo vía web a su menú de configuración.

Yo como soy así de complicado pasé del app y me metí a la configuración web. En un primer momento, con el punto sin configurar, el tema es simple: lo enchufas y lo primero que hace es crear una red wifi abierta. Te conectas a esta wifi, miras la dirección del punto de enlace y accedes a él  a través del navegador (en mi caso se creó en la 192.168.9.2, pero no se si será siempre la misma). El caso es que una vez entras en el menú te pedirá que elijas cómo vas a usar el aparato, dándote tres opciones:

  1. Repetidor WIFI: este es nuestro caso, y lo que hace es recibir la señal de la wifi y replicarla, de forma que aumenta la cobertura.
  2. Puente WIFI: en este caso lo que haríamos sería conectar mediante cable de ethernet nuestro dispositivo a un equipo sin wifi para que este pueda conectarse a la red.
  3. Punto de acceso WIFI: Al revés, en ese caso conectamos por cable al router para que emita wifi.

edimax ew-7438rpn

En mi caso elegí el primero, así que el dispositivo lo que hace es buscar todas las redes a su alcance y mostrar una lista con ellas. En dicha lista seleccionamos la que queremos replicar, le damos un nombre (por defecto le dará el nombre de la wifi que replicamos seguida de _2) e introducimos su contraseña. Nos dará la opción de dejar que el punto de acceso obtenga la configuración de red por DHCP o de configurarlo manualmente, yo he recurrido a lo segundo. Tras eso empieza el proceso de configuración automático. Una vez terminado podremos conectarnos a dicha wifi usando en principio la misma contraseña que en la wifi original. Es recomendable después de esto acceder al punto de acceso mediante su IP para poder configurarlo. Por defecto se accede al menú con el usuario Admin y la contraseña 1234, así que es recomendable cambiar esto (sobre todo porque el propio producto te dice estos datos en la ventana de conexión). El resto ya vosotros podéis trastear y ver todas las opciones de las que dispone el dispositivo.

Edimax administración

En resumen, por su precio ya supongo que no esperaréis un AP Cisco con posibilidad de crear media docena de redes independientes… se trata de un cacharrito para casa, pequeño, y que como repetidor cumple debidamente su función. De momento la experiencia es satisfactoria.

Abrir el escritorio remoto de Windows como administrador desde línea de comandos

Esta mañana me topaba con un problemilla técnico al intentar conectar remotamente con un servidor: me decía que dicho servidor no podía servir más licencias de escritorio remoto. ¡Cáspita, qué contrariedad! (eso último ha sido muy Roberto Alcázar) ¿cómo lo solucionamos?

Si lanzamos una consola de comandos podemos utilizar el comando mstsc para abrir el servicio de escritorio remoto y pasarle determinadas opciones. La clave para lo que tenía que hacer era usar el parámetro /admin.

La sintaxis de mstsc es la siguiente: mstsc [<connection file>] [/v:<server[:port]>] [/admin] [/f[ullscreen]] [/w:<width>] [/h:<height>] [/public] | [/span] [/edit “connection file”] [/migrate] [/?]

En la web de Microsoft podéis mirar más información sobre todas las opciones comentadas arriba.

Vamos con un ejemplo práctico basado en el caso que os decía antes. Vamos a suponer que la dirección del servidor al que hay que conectarse sería la 192.168.100.7 ¿cómo lo haríamos con mstsc?

mstsc /v:192.168.100.7 /admin

De esta forma ya entraríais al servidor con credenciales de administrador, desbloqueando el problema del servicio de licencias.

Configurar puerta de enlace en Windows por línea de comandos

Me acabo de encontrar con un problema en un equipo con Windows 7 Pro: cada vez que este se enciende o reinicia pierde la puerta de enlace y hay que configurársela. ¿Por qué? Ni idea, pero es un coñazo. ¿Solución? He probado con el comando route add a configurar la puerta de enlace y ha funcionado. ¿Cómo se hace? Muy sencillo, desde un terminal con el comando route add -p 0.0.0.0 mask 0.0.0.0 y la ip de la puerta de enlace:

#Ejemplo práctico
#Supongamos que la puerta de enlace
#es la ip 192.168.1.1
#que es una dirección típica

route add -p 0.0.0.0 mask 0.0.0.0 192.168.1.1

En la web de Microsoft hay más información sobre el uso de route add, aquí sólo os explicaré que para este caso le ponemos la ip 0.0.0.0 y la máscara 0.0.0.0 para especificar que todas las IP pasen por la puerta de enlace definida al final. El comando route add nos permitiría definir varias puertas de enlace para varios rangos de ip sirviéndonos de esos parámetros. Pero eso son temas que ya tocaremos en el futuro.

Incluir java en el PATH de Windows

Aunque no siempre es necesario, a veces nos tocará modificar la variable PATH de Windows y añadir la ubicación de Java para utilizar algún software concreto.

Todavía no he tenido que hacerlo en Windows 10, pero os comento cómo va la coas en Windows 8 y Windows 7. Voy a omitir XP porque al estar descontinuado no es cosa de darle soporte (de hecho la propia Oracle no asegura el funcionamiento de las últimas versiones de Java, aunque con el SP3 funciona de momento).

Vamos con las instrucciones para Windows 7:

  1. Abrimos el menú de inicio y hacemos click derecho sobre Equipo y, en el menú contextual seleccionamos Propiedades del Sistema.
  2. Hacemos click en Configuración avanzada del sistema -> Opciones avanzadas.
  3. Hacemos click en Variables de entorno, allí en Variables del sistema, buscamos PATH y hacemos click en él.
  4. En la ventana Editar, modificamos PATH agregando la ubicación de java en nuestro equipo al valor de PATH.

Y ahora las instrucciones para Windows 8:

  1. Hacemos click en Búsqueda y buscamos Panel de control
  2. Ahí hacemos click en Panel de control -> Sistema -> Opciones avanzadas
  3. Ahí vamos a Variables de entorno, y ahí en Variables del sistema, buscamos PATH y hacemos click en él.
  4. En la ventana Editar, modificamos PATH agregando la ubicación de java en nuestro equipo al valor de PATH.

En cuanto lo tenga que hacer en Windows 10 os lo agrego por aquí.

Utilizar .htaccess para protegerse de inyecciones SQL

Llevo unos días que no encuentro tiempo para escribir, pero vamos con un tip cortito que puede servir de ayuda para mejorar la seguridad de nuestra web.

La inyección SQL es un peligro para la integridad de nuestros datos y ya más de una vez hemos visto formas de protegernos. Como un plus de seguridad nunca está mal, vamos a ver cómo usar el fichero .htaccess de nuestro servidor para conseguir un plus de protección contra este tipo de ataques. El siguiente cojunto de reglas nos ayudará a mejorar la protección de nuestro sitio:

RewriteCond %{QUERY_STRING} (;|<|>|’|”|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|cast|set|declare|drop|update|md5|benchmark) [NC,OR]
RewriteCond %{QUERY_STRING} \.\./\.\. [OR]
RewriteCond %{QUERY_STRING} (localhost|loopback|127\.0\.0\.1) [NC,OR]
RewriteCond %{QUERY_STRING} \.[a-z0-9] [NC,OR]
RewriteCond %{QUERY_STRING} (<|>|’|%0A|%0D|%27|%3C|%3E|%00) [NC]
RewriteRule .* - [F]

Recordad que hay que tener el servidor configurado para que .htaccess esté activo y permita el filtrado de URL.