domingo, 30 de octubre de 2016

Mi router de Internet es un coladero y quizás el tuyo también...

Hola,

Aunque llevo con mi nuevo router ADSL desde septiembre todavía no había tenido tiempo de "meterle mano", los inicios de curso son difíciles y hay muchas clases que preparar y materiales que revisar, sobretodo en el caso de que seas profesor de informática y todo lo del año pasado no sirva para mucho porque alguien ha decidido sacar una nueva versión del lenguaje que enseñas o cambiar algún programa incluyendo nuevo interface, funciones, etc... pero bueno, la entrada de hoy no va de quejas sobre lo duro que es trabajar como profesor de informática y estar actualizado sino sobre lo difícil que es, en pleno 2016, que un proveedor de Internet se preocupe de instalarte un router con unas mínimas condiciones de seguridad y vamos a ver mis razones....

El router: Comtrend AR-5315U (Alias, el coladero)


Imagen. Router Comtrend Ar-5315U


Visto en foto no parece tan peligroso, tampoco se ven los agujeros, pero tenerlos los tiene y no son solo de ventilación, vamos a comprobarlo....

Accediendo a la gestión del router por medio del interface Web (normalmente escribiendo http://192.168.1.1 en tu navegador de Internet desde un equipo de casa) lo primero que obtenemos es una solicitud de nombre de usuario y contraseña. En el caso de los routers de mi proveedor de Internet solo hay que "googlear" un poco para ver que es admin/admin.


Imagen. Información del dispositivo

Y como cabría esperar ya estamos dentro, evidentemente la primera cosa que piensas es "esa contraseña hay que cambiarla" y la segunda es "¿habrá más usuarios?" Pues a mirarlo.... 

Trasteando un poco es fácil encontrar en el menú Management la configuración del cliente TR-069 que permite el acceso desde un servidor remoto de autoconfiguración y bueno, parece que la configuración está correcta y es segura o casi, no tengo claro que el acceso no sea mediante admin/admin también... en todo caso si queremos podemos deshabilitarlo pero entonces nosotros deberíamos ocuparnos de las actualizaciones y eso, como veremos al final, es algo complicado.

Además de eso tenemos la opción Access Control que nos muestra una pantalla que puede llegar a poner los pelos de punta, no directamente, sino en el momento en el que te enteras de cuáles son las contraseñas por defecto...

Imagen: Descontrol de acceso

Básicamente, el acceso al router se controla mediante tres usuarios:
  • Admin. Que tiene acceso a todo el sistema.
  • Support. Que en teoría sirve para permitir a un técnico de nuestro proveedor de Internet acceder al router para matenimiento y diagnóstico.
  • User. Permite acceso al router para ver la configuración y las estadísticas y además puede actualizar el software del router.


Vamos, que primero tenemos que fiarnos que la contraseña del usuario support esté a buen recaudo bajo la custodia de nuestro proveedor de Internet, aunque realmente ni siquiera les hace falta ponerla en un post-it pegado debajo del teclado, ya que es la misma que el nombre de usuario. Por otro lado el usuario user solo puede ver la configuración pero para que se sienta importante le permito actualizar el software del router para que nos pueda instalar algo que le guste más y le de más privilegios. En todo caso no deberíamos de preocuparnos, se supone que los fabricantes de routers saben del problema de seguridad existente en Internet y por lo tanto habrán puesto medidas...

Accediendo remotamente mediante la contraseña por defecto

Bueno, pues después de cambiar la contraseña por defecto de los tres usuarios, en mi router admin/admin, support/support y user/user (ay,ay, ay....). Empecé a pensar que esas contraseñas lo mismo también permitían acceso desde fuera de mi red local ya que en caso contrario la contraseña de support no tendría sentido y ya que estaba lo iba a probar. Me dispuse a intentar acceder a mi IP externa, pero desde mi casa hay que hacer unas cuantas cosillas y si me equivocaba la prueba podía no dar el resultado correcto, así que pensé que alguien más tendría un router como el mío  y me dispuse a buscarlo con shodan (solo con fines educativos, evidentemente).

En la primera búsqueda utilicé de cadena la marca y modelo del router, y no tuve ningún resultado, así que utilizando el identificador de chipset y después de algunos intentos encontré la cadena con la que shodan tiene indexados este tipo de router, pero no la voy a decir que nunca sabes quién puede leer esto....


Imagen. Resultados de búsqueda de shodan 

Uno de los primeros resultados era de un router en España, y en total había 1830 routers españoles por lo que podía probar en varios (aunque no hizo falta). Otra cosa que me sorprendió fue la cantidad de servicios Telnet habilitados, Tenía toda la pinta que además del acceso web tuviese un servidor Telnet habilitado. 

Bueno, pues era el momento de probar, puse la IP de ese primer router en mi navegador, obtuve respuesta y el sistema me solicitó el nombre de usuario y contraseña y sin mucha confianza puse admin/admin y tachaaaannn estaba dentro y con todos los privilegios.

Una vez más, como soy buena persona cerré el navegador sin tocar nada pero no sin antes capturar esta pantalla, donde se ve que en ese router el propietario había cambiado el DNS secundario por el famoso 8.8.8.8 de Google, Por lo que se supone que algo de pericia debía tener y además es una persona confiada, pensando que su proveedor de servicio nunca le instalaría un router accesible desde Internet con admin/admin y que quizás esa contraseña está solo habilitada para acceso LAN como he visto habitualmente en muchos routers. 



Imagen. Información de dispositivo en router vulnerable

Una vez visto esto solo me quedaba comprobar el acceso por Telnet, ¿serían capaces de instalarte en pleno 2016 un router accesible desde Internet mediante una contraseña como admin/admin y además dejarte habilitado el servicio de Telnet con la misma contraseña? 

Y por Telnet hasta el infinito y más allá...

Por supuesto que sí, total, si se puede acceder por interface web desde cualquier lugar del mundo con el usuario y contraseña admin/admin para qué nos vamos a complicar la vida protegiendo el acceso por Telnet. Una vez más accedí al sistema para comprobarlo haciendo un Telnet a la IP que encontré en shodan desde Putty, hice un help para ver comandos disponibles y cerré sesión no sin antes capturar una pantalla para el recuerdo.

Imagen: Telnet a router vulnerable

Y ahora qué hacemos....

Bueno, pues después de leer la genial entrada 24 horas en la vida de mi router doméstico y pensar las barbaridades que han podido hacer a mi router en todo este tiempo lo único que nos queda es:

  • Reset de harware a configuración de fábrica. No sea que ya te hayan entrado y tengas un firmware de los que gustan de participar en esos ataques DDoS tan de moda últimamente.... 
  • Cambiar todas las contraseñas de acceso.
  • Desactivar el WPS
  • Instalar el último firmware, si lo encuentras, ya que yo no he sido capaz.... En teoría eso lo hace mi proveedor de Internet a través de su TR-069 pero me temo que se han debido despistar un poco. En todo caso podría ser que esto solo ocurra en determinados modelos de Firmware de este router por lo que convendría que compruebes si en el tuyo pasa lo mismo. Con suficiente tiempo y sabiendo tu IP externa es sencillo de probar, de todos modos si compruebas que estás entre los afectados y puedes buscarte otro router pues casi mejor ;-)

Por cierto, haciendo un escaneo de puertos de mi router he visto que el 23 no es el único puerto que el router ofrece, pero bueno, ¿para qué nos vamos a seguir asustando...?, eso ya lo veremos en alguna práctica de aula donde jugaremos a comprobar la seguridad de nuestros routers domésticos, ¿has probado la del tuyo? ;-)











martes, 25 de octubre de 2016

Alternativas a la enseñanza de la programación, más allá de Scrach y App Inventor

Hola,

Ha pasado algún tiempo desde la última entrada, pero como todo buen estudiante debe hacer presento justificante.....hace tres meses se pusieron en contacto conmigo los responsables de las VII Jornadas de Innovación y TIC Educativas 2016 que desde hace años organiza la Universidad Rey Juan Carlos para pedirme algo que podría parecer complicado. Querían ver si era posible impartir un taller en el que se viesen cómo podemos enseñar programación y pensamiento computacional sin utilizar los típicos entornos del MIT, es decir, Scratch y App Inventor, ¿difícil? pues eso parecía, pero va a ser que no....

Durante estos últimos meses he estado visitando páginas, probando aplicaciones y en definitiva, viendo cómo se puede aprender a programar (y os aseguro que se puede) sin tener que utilizar esas dos aplicaciones.

Lo primero que debo decir es que con Scratch y App Inventor vas sobre seguro, entornos probados y que funcionan sin problemas, sin embargo ese lado curioso que todos tenemos nos puede hacer preguntarnos ¿hay algo mejor? Pues mejor no sé, pero desde luego alternativas hay, y sobre eso tratará el taller que impartiré en las JITICE el próximo jueves 27 de octubre a las 18:30 en la sala multimedia del edificio de ampliación del rectorado de la Universidad Rey Juan carlos en su campus de Móstoles (se tarda más en decirlo que en llegar allí...).

Prometo que en próximas entradas (ya veremos lo que tardo...) hablaré más de algunos de estos programas, por ejemplo Sonic Pi, un programa que mezcla música y aprendizaje de la programación, y que me ha llamado mucho la atención, así como otras aplicaciones como por ejemplo Tynker o Hopscotch , proyectos de Google como Blocky o la genial Turtle Academy que me ha hecho recordar mis inicios en esa extraescolar en la que me enseñaban logo hace tantos y tantos años.... Sin más os dejo las transparencias de la presentación.


 

Saludos informáticos
Jorge

jueves, 6 de octubre de 2016

Trasparencias de HTML5 y CSS3

Después de algunos años impartiendo asignaturas de programación de ciclos formativos en las que era requisito indispensable conocer lenguajes de marcas había detectado que cierta parte de los alumnos conocía HTML y CSS pero no en sus últimas especificaciones. Este año, aprovechando que yo soy el profesor de lenguajes de marcas  he intentado desarrollar un material nuevo lo más actualizado posible y que me sirva de soporte para explicar HTML5 y CSS3 ya que así, además de aprender lenguajes de marcas aprenden especificaciones actualizadas que pueden ser de interés para el desarrollo profesional del alumno. Por el momento dejo aquí la primera parte del tema.

lunes, 3 de octubre de 2016

Problemas de no encriptar la conexión en tus adaptadores PLC

La semana pasada y debido a los problemas de recepción WIFI que tenía en mi equipo de sobremesa decidí adquirir un par de adaptadores PLC pensando que esto solucionaría mi problema, y así fue, aunque después de varias horas de sufrimiento y desesperación ¿el motivo? espera un poco que te vas a reir.....

1º Situación previa.


Debido a que recientemente me he mudado la distancia de mi equipo sobremesa al router WIFI de mi proveedor de Internet ha aumentado bastante, no es que la casa sea grande, pero por situación de habitaciones y tomas de corriente han quedado muy alejados uno de otro, total, que la recepción WIFI era mala y decidí que quizás el PLC era una buena solución. Estuve buscando un poco de información en Internet y compre un pack de adaptadores que por velocidad y presupuesto se ajustaban a mis necesidades.

Imagen: Mi nuevo PLC

2º La instalación


Con la emoción del momento y pensando en recuperar algo de velocidad de acceso a Internet en mi equipo instalé los PLC como cualquier usuario avanzado haría, abriendo el manual de instrucciones y una vez visto el montón de idiomas en que viene instalándolo sin leer nada, esto es, enchufas, conectas los cables y a correr. 

Imagen: Instalado y funcionando, o eso creía yo.....


3º Empieza el show


Una vez instalados la conexión en mi equipo no era lo que esperaba, tenía cortes, fluctuaciones en la velocidad, etc... pensé que quizás la instalación eléctrica de mi casa no era la adecuada y que al final me iba a tocar volver al WIFI, pero bueno, se hizo tarde y me dispuse a ver alguna película en la Smart TV del salón tirando de un servidor DLNA que tengo en un pequeño NAS. La peli se cortaba, los subtítulos desaparecían y aparecían, total, que empezaron las dudas, la red de mi casa es un poco compleja, tengo un switch gigabit de 8 bocas, un Apple TV, el Smart TV y el NAS antes comentado, un deco que lleva conexión a Internet y algún cacharro más, solo le falta tener conexión a Internet a la nevera....Así que empecé a pensar..... ¿He instalado algo mal?, ¿no será el router del proveedor de servicio?, ¿el switch de 8 tomas?, ¿habré cruzado algún cable?, ¿me han entrado en la WIFI?.....

4º Auditando la red


Lo primero que hice fue revisar cable a cable para ver si había puesto algo mal, también quité el PLC de mi equipo pero dejé el del router (grave error!!) pensando que así deshabilitaba la red PLC que quizás era el problema. Fui apagando dispositivo a dispositivo y haciendo pruebas, horas más tarde todo seguía igual o parecido, probé todo lo que se me ocurría menos lo que pasaba, que quizás era lo más lógico pero lo último que se me habría ocurrido....

5º "Papá, eres mu tonto"


Esa frase que mi hija me dice a veces, desde el cariño o eso espero, se cumplió el momento en el que descubrí el problema, y fue por casualidad, como suele ocurrir con estas cosas....

Resulta que había probado a acceder a mi router de acceso a Internet y para ello había usado un portatil por WIFI, había puesto la IP del router y comprobado que no había intrusos en la red y que la velocidad del proveedor de servicio se mantenía constante, pero no había probado a hacer lo mismo desde mi equipo sobremesa conectado por PCL y cuando lo hice, en mitad de un cabreo enorme porque se me había cortado por quinta vez la descarga de un archivo de 10 Mb esto fue lo que salió en pantalla....

Imagen: Página de entrada a la configuración de un router de Movistar

Bueno, pones la IP de tu router de acceso a Internet en un navegador y te sale el acceso a la página de configuración, ¿normal? pues NOOOOOOOOOOO!!!, porque da la casualidad que mi router pertenece a otro proveedor de servicio, vamos, que estaba conectado a la red de mi vecino y puesto que las IP internas de salida a Internet eran las mismas en las dos redes había dos servidores DHCP dando direcciones IP y por lo tanto, además de duplicar la IP de la puerta de enlace estábamos duplicando IPs en otros equipos y por eso la red iba tan mal. Probé a apagar mi router de salida a Internet y aprovechando el PCL y el switch de 8 puertos todos mis equipos volvieron a funcionar y con un acceso a Internet bastante rápido, pero como soy buena persona y no me quiero aprovechar dejé todo como estaba y me dispuse a dar solución al asunto.

6º El desenlace.


Según había leído el PLC debería cortar la red que genera en el diferencial de la vivienda, pero en este caso, por el motivo que sea no era así. Investigué un poco más y al parecer en instalaciones nuevas y con cables de calidad el PLC puede llegar bastante lejos y pasar diferenciales, de hecho, no podía ser mi vecino de planta, ya que no vive nadie en el piso, por lo que tenía que ser otro, pero tampoco era plan de ir puerta por puerta a preguntar ¿tienes PLC y router de Movistar? o poner uno de esos carteles en la escalera, que luego acaban en Internet....

Imagen: Cartel en escalera vecinal (Fuente: diario Qué)

Total que la solución era sencilla, los PLC pueden encriptarse y el procedimiento es bastante simple, pero yo no lo había hecho ya que aunque vi esa característica cuando compré los equipos pensé que no era necesario, ya que en teoría no pasaba el diferencial y siempre tenía esa idea de "cuando encriptas algo va más lento" y total, si nadie va a acceder a mi red eléctrica....

Para finalizar, encripté los PLC aunque me costó bastante, ya que en cuanto los conectaba a la red sincronizaban con la red del vecino y por lo que fuese no me funcionaba la encriptación. En mi caso el procedimiento es simple, cada equipo lleva un botón que debes pulsar durante un segundo en los dos equipos, una vez realizado se crea el enlace encriptado (creo que con cifrado AES de 128). Al final los tuve que encriptar usando un alargador de enchufe de 4 tomas, al conectarlos en el alargador no detectaban la red del vecino y pude encriptarlos y posteriormente enchufarlos en su ubicación definitiva.


7º ¿Y qué tal va ahora?


Pues una semana más tarde estoy bastante contento, no he vuelto a tener problemas y la velocidad de Internet en mi equipo sobremesa es bastante mejor que con WIFI, sin embargo he aprovechado a probar mis PLC en algunas casas de familiares y amigos y me he encontrado con más de una red PLC sin encriptar a la que me he podido conectar sin problemas. Leyendo experiencias de compra de estos aparatos he detectado que quizás, en algunos de los casos que comentan problemas, están creando redes compartidas con sus vecinos. Los síntomas que indican son parecidos a los que tenía yo, y en definitiva la red te puede funcionar, pero evidentemente con dificultades, por lo tanto, si tienes este tipo de dispositivos ya sabes lo primero que tienes que hacer, no sea que ese vecino que se aburre e intenta acceder a tu WIFI de vez en cuando vaya a darse cuenta que por PLC no necesita complicarse tanto....

domingo, 2 de octubre de 2016

Instalando MySQL 5.7 en ubuntu 16.04

Como parte de la asignatura de Administración de Sistemas Gestores de Bases de Datos de ASIR pedí a mis alumnos que instalasen MySQL en una máquina Ubuntu, Por si acaso alguno se pierde dejo aquí una entrada sobre uno de los posibles métodos de instalación.

Actualmente la última versión disponible de MySQL Community Server es la 5.7.15 que se distribuye bajo licencia GPL 2.0. Aunque en la página de MySQL hay sobrada información sobre cómo realizar la instalación siempre hay algún alumno que prefiere seguir los pasos de manera más visual, y aunque personalmente prefiero que en estos casos los alumnos utilicen el "Do It Yourself" y se peguen un poco con el sistema dejo aquí un pequeño tutorial de instalación.

1. Pasos previos


Lo primero es abrir un terminal de Ubuntu (Ctrl+Alt+T) y actualizar el sistema, evidentemente necesitamos estar conectados a Internet, pero eso vamos a asumir que está bien configurado....

$ sudo apt upgrade
$ sudo apt upgrade















2. Instalación de la parte servidor y cliente

A continuación vamos a instalar tanto el servidor como el cliente.

$ sudo apt install mysql-server mysql-client


Durante el proceso el sistema nos pedirá la contraseña de root, que evidentemente debería seguir unos criterios de complejidad aceptable. Mi recomendación en estos casos es usar un gestor de contraseñas como por ejemplo KeePass




Al finalizar encontraremos algo como esto:


3. Aumentando la seguridad de nuestra instalación

Este paso es opcional, aunque muy recomendable. Supone la ejecución de un programa llamado MySql Secure Installation que nos ayuda a aumentar la seguridad de nuestra instalación de MySQL en los siguientes aspectos:


  • Establecimiento de una contraseña realmente segura para root
  • Evitar que las cuentas administrativas sean accesibles desde otro equipo
  • Eliminar las cuentas de usuarios anónimos
  • Eliminar la base de datos de pruebas, que por defecto puede ser accedida por todos los usuarios, incluso los anónimos.
  • Eliminar todos los privilegios que comienzan por los caracteres "test_" y que permiten, a los usuarios que los tienen, acceder a todas las bases de datos del sistema.


Para ejecutar el programa basta escribir.

$ sudo mysql_secure_installation

Durante la ejecución del programa pasaremos por diferentes apartados. Después de solicitarnos la contraseña actual de root de MySQL nos pregunta si queremos utilizar el plugin que valida la complejidad de nuestra contraseña.



Permite seleccionar uno de tres niveles para la política de contraseñas:











Posteriormente el sistema nos preguntará si:
  • Queremos eliminar usuarios anónimos.
  • Deshabilitar las conexiones remotas desde cuentas de root.
  • Eliminar la base de datos de pruebas y su acceso.
  • Recargar las tablas de privilegios para que todos los cambios tengan efectos inmediatos.

























Como se puede ver en la imagen anterior parece que lo hemos conseguido!!

3. Comprobando la instalación

Vamos a acceder a MySQL, para ello nos sirve el comando:

$ mysql -u root -p 

El sistema nos solicitará nuestra "supersegura" contraseña de root, si no ha dado tiempo a que se nos olvide y la apuntamos correctamente en ese papel que perderemos en unos minutos conseguiremos entrar al sistema















Ahora simplemente podemos ejecutar el comando show databases para comprobar que todo está en orden.





















Y con esto parece que todo funciona, más adelante veremos como arrancar y parar el servidor y algunos cambios en el archivo de configuración pero eso será otro día.....



¿Hello World en Sonic Pi?

¿Hello World en Sonic Pi? Llevo un tiempo programando en  Sonic PI , un entorno de programación que posee un lenguaje propio orientado al...