Nokia Lumia 800

Nokia lanza su nuevo modelo de teléfono móvil el Nokia Lumia 800. Un teléfono muy completo con el que estará todo a tu alcance, su diseño integral con una pantalla táctil de 3,7 pulgadas hace que el usuario disfrute mucho más del contenido audiovisual.

Las redes sociales (Facebook, Twitter, Linkedin…), música, mapas… están a un toque de tu pantalla, este Nuevo modelo cuenta con Internet Explorer 9 y una cámara de 8 Mpx con un objetivo de gran angular.

El lanzamiento del teléfono Nokia Lumia 800 es el más importante de la marca, con esta campaña tiene el objetivo de comunicar y posicionarse como el nuevo Smartphone de Nokia que contará con el sistema operativo de Windows Phone.

Comienza la pretemporada de F1 2012

Mañana arrancará la pretemporada de F1 2012 con cuatro días de entrenamientos en Jerez de la Frontera en los que estarán presentes once de los doce equipos que competirán esta temporada, a excepción de Marussia. Hoy ha sido un día intenso en Jerez con muchas presentaciones y el Lotus E20 con Raikkonen al volante sobre la pista.

Hasta el momento ya se han presentado ocho monoplazas de esta temporada, a saber (por orden cronológico): Caterham CT01, McLaren MP4-27, Ferrari F2012, Force India VJM05, Lotus E20, Sauber C31, Red Bull RB8 y el Toro Rosso STR7.

Quizás el signo más característicos de todos ellos, a excepción del MP4-27, sea lo que se ha dado en llamar morro de delfín, una diferencia de altura a modo de desnivel escalonado en la mitad del morro del monoplaza, una solución de diseño para hacer frente a la normativa de seguridad de 2012.

Por otra parte, algunos equipos ya han confirmado que algunas piezas de los coches que presentaron eran simples maquetas de plástico. En especial lo que se trata de ocultar esta temporada son los escapes y la parte del difusor, con la prohibición de los difusores soplados cada equipo ha tenido que buscar la solución más ingeniosa para esa área.

El punto más extraño lo está poniendo Mercedes, que llega a Jerez con el coche del año pasado y reducen un día los entrenamientos (el viernes no van a rodar), para quedar perplejo viendo que el resto de equipos no están demasiado contentos con la reducción de 15 a 12 de los días de entrenamientos de pretemporada.

Algunos dicen que Mercedes ha encontrado una solución fantástica y no quieren que nadie la copie. Desde el equipo insisten en que no hay nada de eso y simplemente no les ha dado tiempo a completar el programa de de desarrollo. Veremos con que llegan a mediados de febrero a Montmeló, si es verdad que puede luchar con los de arriba y si Rosberg por fin logra subirse a lo más alto del podio.

Otro punto destacable de esta temporada, que comienza el 18 de marzo con el Gran Premio de Australia 2012, es que coincidirán en pista 6 campeones del mundo, a saber: Michael Schumacher (7), Fernando Alonso (2), Sebastian Vettel (2), Lewis Hamilton (1), Jenson Button (1) y Kimi Raikkonen (1), en total 14 campeonatos y entre ellos los comprendidos entre el 2000 y 2011, todo un lujo.

En España, la fusión de Antena 3 y La Sexta ha dejada claro que en este país nos gusta usar la picaresca. Y si Telecinco traspasó los derechos del fútbol cuando se fusionó con Cuatro, ahora toca hacer lo mismo con la F1. Mediapro, gestor de los derechos, los ha sacado a subasta porque dice que La Sexta no tenia dinero para hacer frente al contrato, un contrato que probablemente sea por el concepto que más ingresa esta cadena teniendo en cuenta la cantidad de espectadores que siguen las carreras en este país, a pesar de que Fernando Alonso no gane..

Nota: Para los más despistados, este año Lotus pasa a llamarse Caterham y Renault será Lotus.

Proteger el acceso por SSH

SSH (Secure SHell) es a un tiempo el nombre del protocolo y el programa que nos permite acceder a maquinas remotas de forma segura y gestionarlas por completo mediante un intérprete de comandos.

Hechas las presentaciones, vaya por delante lo de siempre: un servidor completamente seguro es el que está encerrado entre muros de hormigón sin ningún tipo de conexión. Obviamente, así no sirve para nada, entonces tendremos que buscar el correcto equilibrio entre conectividad y seguridad. Como me toca acabar el año configurando nuevos servidores, os dejo una pequeña guía para asegurar el acceso por SSH.

Lo primero, modificar el fichero de configuración de SSH que encontrareis en /etc/ssh/sshd_config y agregamos las siguientes líneas (en muchos casos las encontrareis comentadas).

Protocol 2
LoginGraceTime 20
PermitRootLogin no
MaxAuthTries 2
MaxStartups 3
AllowUsers pepito

La primera línea le indica que unicamente se puede hacer uso de la versión 2 del protocolo de comunicación. La primera versión tiene algunas vulnerabilidades conocidas y está obsoleta por lo que lo recomendable es no usarla si no se necesita.

El LoginGraceTime hace referencia al tiempo en segundos que la pantalla de login permanecerá abierta, en el ejemplo hemos dejado 20 segundos, un tiempo más que suficiente para indicar usuario y contraseña.

Con PermitRootLogin establecido a no evitaremos que el usuario root pueda autenticarse a través de SSH para acceder al servidor. El problema es que los sistemas Linux y Unix crean al usuario root, lo que garantiza a un atacante que ya conoce el usuario, sólo queda la contraseña. De esta forma será mucho más complicado, obviamente no uses nombres conocidos o estarás en el mismo caso.

Otro de los límites que podemos imponer es definir la cantidad de veces que podemos fallar al autenticarnos. Con MaxAuthTries definimos el número de intentos, con 1 sería más que suficiente, pero a los que nos toca andar con varios servidores a la larga terminas equivocándote la primera vez de ahí que lo defina con 2 intentos. Lo que ocurrirá después del segundo fallo es que se cerrará la conexión.

Con MaxStartups se indican la cantidad de conexiones simultaneas que se permiten, en este caso hemos optado por 3, un número razonable para aquellos servidores a los que se accede por SSH únicamente para su administración. Con esto evitaremos que un ataque por fuerza bruta pueda realizar miles de conexiones simultaneas para atacar.

Y por último, pero no menos importante, AllowUsers. Con esta directiva le indicamos al SSH que usuarios exclusivamente se pueden identificar en el sistema. También podemos aumentar la seguridad definiendo desde que redes puede acceder un determinado usuario. Basta con poner los nombres de los usuarios separados por espacios, si se quiere indicar un host podemos hacerlo poniendo el usuario seguido del símbolo @ y el host (Ej: pepito@127.0.0.1).

Con esto ya tenemos nuestro SSH un poco más seguro. Guardamos el fichero y reiniciamos el servicio.

Lo segundo que haremos para evitar que nos ataquen será instalar Fail2ban, un programa controla los logs y que nos permite vetar todas aquellas IP’s que fallan un determinado número de veces. El baneo se realizará usando el firewall, así que lo que hace realmente Fail2ban es crear y borrar reglas en función de la información que se registra en los logs.

El requisito para instalar Fail2ban es tener Python, tenéis disponibles paquetes compilados para instalar o podeis tirar de repositorios. Una vez instalado tan solo es necesario configurar las reglas que queremos tener activas, tenéis bastante información en su web y un archivo de configuración de prueba en /etc/fail2ban/jail.conf

Proteger acceso por SSH con certificados

ESET Internet Meeting Point 2011

Los próximos 7 y 8 de octubre, se desarrollará en el Hotel Sylken de Gijón ESET Internet Meetint Point 2011, un evento que evoluciona sobre la experiencia de años anteriores para ofrecer casi todo lo que nos habéis pedido a lo largo de este último año, y que tiene como premisas principales, la cercanía y su carácter abierto a todos los públicos.

Ese es el objetivo hoy en día, abrir la red a todo el mundo, abrir un evento de internet a todo aquel que quiera participar, indistintamente de sus conocimientos sobre ella. Hablaremos de política, de homeopatía, de seguridad en el hogar, de emprendedores, de sectores industriales en dificultades, de cambios en la sociedad vinculados a las redes sociales, de la realidad sobre el asesinato de Jonh Fitzgerald Kennedy, de fotografía… haremos monólogos, tendremos humor, habrá conciertos, famosos, tweets, internet & Sidras.

El evento ha sido diseñado para que encuentres tu forma de participar, sea la que sea y tengas las aficiones que tengas. Creemos que ESET Internet Meeting Point 2011 conseguirá interesarte en su conjunto o en alguna parte en individual, estamos convencidos de ello porque allí se hablará, se mostrará y se transmitirá cultura.

Tipos de índices en MySQL

Los índices son un grupo de datos vinculado a una o varias columnas que almacena una relación entre el contenido y la fila en la que se encuentra. Con esto se agilizan las búsquedas en una tabla al evitar que MySQL tenga que recorrer toda la tabla para obtener los datos solicitados.

Por tanto la creación de índices es de vital importancia para acelerar las consultas a base de datos, sobre todo cuando las tablas presentan un tamaño considerable. Pero los índices no son el remedio a todos los males, puesto que estos cambian cada vez que la columna asociada se modifica, no se deberían crear indices sobre columnas en las que son frecuentes las operaciones de escritura. También habrá que tener en cuenta que los índices ocupan espacio, en algunos caso más que la tabla a la que hacen referencia.

En MySQL hay cinco tipos de índices:

  • PRIMARY KEY: Este índice se ha creado para generar consultas especialmente rápidas, debe ser único y no se admite el almacenamiento de NULL.
  • KEY o INDEX: Son usados indistintamente por MySQL, permite crear indices sobre una columna, sobre varias columnas o sobre partes de una columna.
  • UNIQUE: Este tipo de índice no permite el almacenamiento de valores iguales.
  • FULLTEXT: Permiten realizar búsquedas de palabras. Sólo pueden usarse sobre columnas CHAR, VARCHAR o TEXT
  • SPATIAL: Este tipo de índices solo puede usarse sobre columnas de datos geométricos (spatial) y en el motor MyISAM

Funcionamiento del proceso de consulta en MySQL

Cuando una consulta, del tipo que sea (INSERT, SELECT, GRANT, …) es enviada a MySQL se ejecuta un procedimiento que consta de cuatro pasos: la caché de consultas, el parseado, la planificación y la ejecución.

      1.- La caché de consultas: Cuando se recibe una consulta de tipo SELECT se ejecuta un algoritmo de hash y comprueba si tiene alguna consulta idéntica almacenada, en caso afirmativo devolverá el resultado cacheado. La caché de consultas es muy útil en tablas que no cambian frecuentemente y donde se realizan muchas peticiones idénticas, suele ser el caso de páginas web dinámicas que muestran el resultado almacenado en base de datos. Se activa con la directiva query_cache_type en el fiche my.cnf (OFF o 0 desactiva la caché, ON o 1 activa excepto cuando se usa SQL_NO_CACHE y 2 solo guarda resultados en caché cuando se indica expresamente con SQL_CACHE).

      2.- Parseado: Si la consulta no se encuentra en caché se parsea, comprobando la sintaxis de la consulta y dividiéndola en sus elementos básicos. Se identifica el tipo de consulta, las tablas que están involucradas y se gestiona la cláusula WHERE para su ejecución.

      3.- Planificación: Una identificados todos los elementos que intervendrán en la consulta llega el momento de decidir como será ejecutada. Con EXPLAIN podemos ver el plan que seguirá MySQL para resolver una consulta, lo que nos ayudará a modificar las intenciones de resolución escogiendo la que más nos convenga.

      4.- Ejecución: Con todo decidido resta ejecutar la consulta y devolver el resultado.

Y hasta aquí todo el misterio que encierra la ejecución de una consulta sobre MySQL. El modo en el que ayudamos a que MySQL resuelva eficazmente las consultas realizadas determina en la mayoría de los casos el resultado final de rendimiento de una base de datos.

Habitualmente la mayor parte de las bases de datos están mal aprovechas, bien porque han crecido más de lo planteado o por un mal diseño del almacenamiento. Muchas veces se suele intentar solucionar a golpe de mejora de hardware, cuando en realidad una buena optimización ayudando a MySQL a ejecutar los procesos de consulta suele repercutir en una mejora mucho mayor que ofrecerle un hardware más potente.