domingo, 21 de octubre de 2007

Navegar anónimamente

Cuando nos conectamos a cualquier máquina, en esta queda registrada nuestra ip. Con ella pueden saber de dónde venimos, cual es nuestra máquina, dónde estamos ubicados y un montón de información más que puede quedarse resgistrada. Si ha esto le añadimos la inclusión de cookies en la mayoria de las peticiones, aún se puede recoger mucha más información acerca de nosotros. Con todo esto se pueden confeccionar perfiles de usuarios muy exhaustivos, con información personal que podrían adquirir un valor económico bastante grande para las empresas publicitarias.

El creciente aumento del uso de internet ha provocado que la intimidad y el anonimato de las personas que navegan resulten claramente amenazadas. Esto no debería ser así ya que la intimidad personal es un derecho que queda perfectamente legislado en la constitución. Por ejemplo en los metodos tradicionales, vease correo postal, este derecho estaba perfectamente garantizado. Pero con la llegada de la red de redes todo cambia...

Para poder hacer uso del derecho de anonimato tendremos que utilizar servicios de terceros, como son los proxys. Supongo que muchos sabréis que es un proxy. Para lo que nos sepan exactamente lo que es (aunque seguro que habrán oído mucho hablar de ellos) es una máquina/software que se interpone entre la conexión fuente y la conexión destino. Nosotros le mandamos la petición al proxy, y este después se la manda al destino que nosotros queríamos enviárselas en un principio (ver imágen). Podríamos decir que el proxy hace la operación por nosotros y por tanto es él el que envía el paquete en cuestión al destino. Actúa de intermediario entre la máquina origen (la nuestra) y la máquina destino (donde queremos enviar la información).

Aunque no lo creamos cuando realizamos una conexión (y más si estamos dentro de una empresa) la realizamos a través de proxys. Por ejemplo cuando un usuario que tiene contratado los servicio de un ISP para conectarse a internet, y hace una consulta, esta no va directamente al dominio en cuestión (por ejemplo http://www.blogger.com/) sino que esa petición llega al servidor proxy de nuestro ISP. Este tipo de proxy (que utilizan los ISP y las empresas) se llaman transparentes (es decir, transparentan tu ip real y realmente no cambian la ip por la ip del la maquina proxy sino que actúan sin cambiar ningún dato de la ip). Por ejemplo Telefónica y muchos de los operadores que usan su red, tienen proxies transparentes. Para más información acerca de los proxies de Telefónica consultar esta página. Estos proxys (los transparentes) no son los que nos interesaran a nosotros, ya que lo que nosotros buscamos es que el proxy ponga su ip en las peticiones en lugar de dar a conocer nuestra ip.

Otro tipo de proxy seria el proxy-cache. En este caso, el proxy almacenarían las consultas realizadas por distintos usuarios dentro de una red para que cuando alguien haga la misma consulta (es decir, una consulta que antes realizó algun usuario y se quedó almacenada en la cache), la repuesta la obtendremos desde la cache del servidor proxy (siempre que la pagina no este obsoleta). De esta forma se nos mostraría la consulta mas rápidamente. Algunos ISP implenentan también este tipo de proxys. Podrían añadirse más funcionalidades como filtrado de páginas web o algunas cosas más.
Como hemos visto, este es otro tipo distinto de proxy (no es que sea distinto, solo añade la funcionalidad de cache-web) que se le denomina proxy cache web.

Aquí os dejo una imagen aclarativa de que es un proxy en general:


Hasta ahora hemos visto que dos tipos de proxys: transparentes y cache-web. Pero visto lo visto, ¿para que nos podrían servir a nosotros para ocultar nuestra identidad? Vamos a verlo.

Cuando navegamos por internet y nos conectamos a distintas máquinas y a distintos servicios todos estos equipos loguean tu ip y esta queda registrada. Por lo tanto si vas ha hacer algo que no sea muy ético (o no quieres por el motivo que sea que tu ip quede registrada), seria interesante usar proxies, que no sean transparentes, para que no quede registrada tu ip y si la del proxy en cuestión. Analogamente a los proxy transparentes, los proxys normales si cambian nuestra ip por la ip de la maquina proxy.

Dicho esto no quiero que se piensen que por usar proxies somos anónimos al 100% y nadie nos podrá descubrir. Resalto: el anonimato al 100% es imposible, pero si que podremos confundir acerca de nuestra identidad. Esta claro que para confundir totalmente a nuestra victima lo mejor seria realizar un ataque o la petición desde otra máquina que tendrá otra ip que en nada se parecerá a la nuestra, ni tendrá relación con ella. Pero vamos a centrarnos en el tema de los proxies, y no nos vamos a desviar.......

Un primer acercamiento para ver que es eso de los proxies seria entrar en la página de http://anonymouse.org/anonwww.html (que lo que hace es redirigir la peteción hacia un servidor proxy) y poner por ejemplo la siguiente página web: http://www.whatismyip.org/, que nos dirá cual es nuestra ip. Después abrimos otra ventana o pestaña del navegador y ponemos directamente http://www.whatismyip.org/, ahora sin usar un proxy y veremos como ha cambiado nuestra ip. En esta segunda ocasión nuestra flujo de datos no ha pasado por una maquina intermedia (denominada proxy ;)).

Lo interesante ahora seria conseguir una cadena de proxies o algún mecanismo similar para poder navegar de forma más segura anónimamente.

Pero esto lo veremos en el siguiente capítulo que sino se hace esto demasiado largo para poder leerlo ;).

Un saludo y hasta el próximo episodio!

viernes, 19 de octubre de 2007

InstantBird: nueva competencia en la Mensajeria instantanea

Aquí en España, el boom de la mensajería instantánea empezó con la aparición del Messenger de Microsoft alla por el año 2003 en su versión 6. Hoy por hoy es el método mas utilizado para comunicarse.

Más tarde, le surgieron competidores tales como GTalk, de Google, que parece que no ha acabado de cuajar y que no parece que vaya a ser una amenaza mayor a corto plazo, aunque ya incorpora soporte para conversaciones de voz y da soporte para las cuentas de GMail, añadiendo todos tus contactos al programa.

La cosa siguió con el fenómeno VoIP, programas como Skype o VoIPBuster empezaron a dar "mucho que hablar" ;) pero rápidamente Microsoft incorporó conversaciones de voz y volvió a estar en cabeza (aunque realmente nunca dejó de estarlo).

Hoy, 19 de octubre de 2007 nace el que podría ser su mayor competidor, InstantBird de Mozilla.

El programa está todavía muy muy verde, es la versión 0.1 y apenas tiene funcionalidades, aunque augura buenos presagios.
Lo interesante de este cliente es que va a ser multiprotocolo, es decir, podrás conectarte con cuentas de:
  • AIM
  • Gadu-Gadu
  • Google Talk
  • ICQ
  • MSN
  • QQ
  • XMPP
  • Yahoo!
Pantalla de Selección de protocolo


Otro aspecto interesante es que estará disponible para las tres plataformas mas utilizadas: Windows, Linux y Mac.
La aplicación está basada en otras dos mas conocidas: XULRunner y el conocido Pidgin.

Esperemos que al igual que Firefox, esta nueva competencia haga ponerse las pilas a Microsoft y que siga la lucha por ofrecer el mejor producto, que es lo que al fin y al cabo quiere el consumidor ;)

Si queréis descargar la versión 0.1 de InstantBird podéis entrar en la pagina oficial del proyecto y ya de paso consultar su roadmap para ver las futuras innovaciones que incorporarán las próximas versiones.

Salu2!


sábado, 13 de octubre de 2007

Ubuntu 7.10 Gutsy Gibbon

Canonical Ltd ha anunciado que liberara la nueva version de Ubuntu, la 7.10, codename Gutsy Gibbon, la segunda mitad de Octubre, hacia el 18.
Para eso queda apenas nada pero de momento ya podeis descargar la Release Candidate de aquí.

Entre las nuevas características que incorporará destacamos:

  • Kernel 2.6.22
  • X.org 7.3

  • Compiz y Beryl (Escritorio 3D Compiz Fusion)
  • Winmodems soportados, si existen drivers disponibles

Ubuntu incorporara GNOME 2.20 y Kubuntu 7.10 (KDE 3.5.7) aunque también incluirá los paquetes de KDE 4.0 RC2 para que ambos puedan ser instalados. Por otra lado el escritorio 3D Compiz Fusion se activará como Gestor de Ventanas por defecto en sistemas que lo soporten.

Estará disponible también en una edición "Mobile and Embedded" para dispositivos portátiles. Esta versión también integraría los componentes Hildon UI desarrollados por Nokia.

En el servidor, el framework de seguridad AppArmor de Novell estará disponible como una opción durante la instalación, ademas de importantes mejoras de administración y deployment.

Si dispones de una Feisty Fawn instalada podrás actualizar a Gutsy Gibbon siguiendo las instrucciones de Canonical.

Mas información aquí.
Fuentes:

Mename
VivaLinux!

lunes, 8 de octubre de 2007

VNC, el escritorio remoto

Hemos hablado ya aquí de diversos servicios como: ftp, ssh que nos pueden ofrecer nuestros pc para incrementar su potencia. Ahora es hora de hablar de otro servicio muy interesante que nos abre un gran abanico de posibilidades como es el escritorio remoto.
Al principio de todo (no digo de la creación del hombre sino de los primeros computadores ;)) los ordenadores eran maquinas enormes que solían ocupar una habitación entera. Entonces la idea la tener para cada computadora para cada usuario con una entrada de teclado era una utopía. Es aquí donde aparece la necesidad de conectar diversas consolas a una maquina a través de una interfaz (podríamos decir que es aquí donde aparece al idea de crear un servicio parecido a lo que después será el ssh o telnet). Con el paso del tiempo los ordenadores fueron reduciendo su tamaño, evolucionando su tecnología y aumentando las prestaciones. Pero en la década de los 90 vuelve a surgir una revolución más. Los sistemas operativos eliminan parte de la interacción textual para dar vida a la interacción gráfica. Nacen los escritorios gráficos. Inicialmente en el sistema UNIX ya se pensó en la opción de poder conectar varios clientes a un mismo servidor gráfico. Esa es la filosofía (cliente-servidor) en la que se basa el x-windows (hemos hablado ya sobre el en este blog: "Las X y ese mundo tan confuso"). Hoy por hoy, en el año 2007, dispones de una gran variedad de productos que nos permiten acceder remotamente a nuestro ordenador con toda la potencia que ofrece el entorno gráfico. Además el avance en las velocidades de conexión aumentan más y mejor las prestaciones de estos servicios.

Existe una gran variedad de protocolos para la implantación de diversas soluciones para el escritorio remoto. Me voy a centrar únicamente en el VNC (que hace uso del protocolo "Remote FrameBuffer", para más información acerca del funcionamiento ir a aquí ), ya que es el más utilizado hoy por hoy además de ser código abierto, ligero, sencillo y multiplataforma.
VNC (Virtual Network Computing) es un programa que se utiliza para el control remoto de equipos. Podremos manejar el ordenador al cual estamos conectados (es decir podremos tener el control de recursos como el ratón, el teclado, la pantalla... ) como si estuviésemos delante de el. El programa se basa en la arquitectura cliente-servidor. En un ordenador (supuestamente el que queremos controlar y digo supuestamente porque después veremos que se pueden hacer conexiones inversas) ejecutamos el servidor y el en otro lanzaremos el cliente que controlara al ordenador del servidor.

Para realizar las prácticas usaré MS Windows como sistema operativo y el cliente/servidor VNC a utilizar será el TightVNC (ya que es una versión mejorada de VNC, optimizada para conexiones lentas que comprime el tráfico usando un algoritmo de compresión propio). Existe también una versión la Linux. Para instalarla solo tenemos que ejecutar la orden "apt-get install tightvncserver xtightvncviewer" si queremos instalar tanto el cliente como el servidor (para hacer nuestras pruebas) o elegir el cliente o el servidor dependiendo de lo que queramos instalar.
Para instalar el tightVNC para Window tenemos que dirigirnos a la página del proyecto. Podemos descargarnos una versión sin instalación muy útil para ejecutarlo en cualquier maquina donde estemos sin necesidad de instalarlo en el propio sistema, y otra versión con instalación. Su ejecución es muy fácil. En la maquina a la cual queremos administrar remotamente lanzamos el servidor. Veremos que en la parte inferior derecha (en la barra de inicio) nos aparece un nuevo icono con una "V", que nos indica que se esta ejecutando el servidor correctamente. Abriremos ahora el programa (es decir, el servidor, haciendo clic con el botón derecho sobre el icono en forma de "V"), cambiaremos el password y dejaremos las demás opciones como están.
Ahora le toca el turno al cliente. En la maquina donde queremos controlar al servidor lanzamos el cliente (como vemos es una aplicación muy sencilla). Solamente tendremos que introducir su dirección ip o el nombre del host y automáticamente tendremos acceso a la maquina donde esta instalado el servidor. Recordar que habrá que mapear/nattear los puertos del router para que el puerto utilizado por el VNC apunte hacia nuestro ordenador. Estos puertos son: 5900, 5800 (tendremos que abrir dichos puertos en el servidor).
Si tenemos una maquina a la cual vamos a administrar remotamente muchas veces, seria interesante ponerle un programa tipo noip o dyndns, para poder acceder a el siempre que queramos mediante un nombre de host. Como hacer esto, lo hemos visto en "Dyndns,tu ip fija (o casi)".

Existe también otra forma de conectarnos al servidor que no sea mediante el cliente del tightVNC: el navegador. Si escribiremos "nombre_del_host:5800" en la barra de direcciones, podremos controlar remotamente también el servidor mediante el navegador.
También existe la posibilidad de hacer conexiones inversas. A todos nos ha pasado el caso de estar en una red que no es de propiedad y no poder tener acceso al router para natear los puertos. En estas situaciones podemos hacer conexiones inversas. Será el servidor el que se conecte al cliente y no al revés. Para ello lanzaremos el cliente en modo "Listening Mode". En la parte del servidor lo lanzaremos, haremos clic en el botón derecho sobre el icono del TightVNC que aparece en la barra de inicio (en la esquina inferior derecha), y seleccionamos la opción "Add New Client". Aquí le indicaremos el nombre del host de la maquina cliente. Cuando el cliente vea que el servidor se ha ejecutado. Automáticamente obtendremos el control sobre el servidor. Señalar que para poder realizar las conexiones inversas hay que abrir el puerto 5500 (o el que nosotros elijamos, se pude cambiar) en el cliente.

Por ultimo y para terminar, un importante dato. Las conexiones VNC no van cifradas. Así que cualquier visitante que tengamos podría husmear el tráfico de la red. Eso si, la contraseñan no se envía en texto plano sino que utiliza un mecanismo llamado desafió-repuesta, pero el resto de la conexión no va cifrado. Para cifrar las conexiones se pueden utilizar otro tipo de programas como UltraVNC o utilizar VNC sobre ssh.

Espero que sirva de ayuda, y así poder aumentar la potencia de nuestro PC.
Un saludo.

domingo, 7 de octubre de 2007

HP MScape Realidad ¿Virtual?

HP ha desarrollado un nuevo concepto de jugabilidad, y lo va a hacer patente a través de su nueva consolo MScape.

Aunque es muy similar en aspecto a la PSP, esta nueva consola propone un rompedor modo de juego: jugar a través de tu propio escenario.
Y es que no es para menos, la nueva consola incorpora una cámara con la que, al enfocar nuestro entorno, lo convierte en el escenario de juego. Podrás caminar por tu barrio viviendo una aventura, resolviendo puzzles... etc, formaras parte del juego.

Os adjunto un vídeo de youtube para que veáis a que me refiero:



Fuente

sábado, 6 de octubre de 2007

Microsoft "libera" IE7

Los antiguos usuarios del navegador de Microsoft que no pudieron instalar IE7 están hoy de enhorabuena, pues el gigante de Redmond ha liberado la instalación, ya no sera necesario validar la copia de Windows para poder instalar el nuevo navegador.

Según Microsoft, "aquellos que deseaban validad su sistema operativo para actualizarse a Internet Explorer 7 ya lo hicieron durante el último año, y los que no, probablemente nunca lo harán"

así que ya sabéis, si aun no tenéis IE7 y lo queréis usar, ahora es el momento. Y yo personalmente os aconsejo que lo instaléis, pues como ya sabéis, el IE va integrado en el kernel del XP y no tener actualizado el IE7 significa no tener actualizado el XP.

Fuente

miércoles, 3 de octubre de 2007

Runlevels en Sistemas Unix

Hola de nuevo a tod@s...!

Después de "algo" de tiempo vuelvo a la carga con un nuevo tema, espero que os interese ;)

El tema a tratar, como indica el titulo del post son los runlevels de los sistemas Unix y Unix-like. Creo que todos los usuarios de sistemas Linux nos hemos topado alguna vez con esta "palabreja" y muy pocas veces hemos estado seguros de su significado, pues bien, vamos a echar un poco de luz sobre el tema:

Los runlevels o niveles de ejecución en un sistema *nix son una característica heredada del System V, una versión de Unix sobre la que se han basado la mayoría de distribuciones Linux, exceptuando algunas como Slackware o Gentoo.
En realidad, el concepto de runlevel o nivel de ejecución es bastante sencillo,hay varios runlevels, del 0 al 6 y basicamente son scripts de inicio de sistema, y cada uno de estos runlevels es una configuración de arranque distinta.

Vayamos por partes... que es todo esto?

Imaginemos que tenemos una maquina con Linux instalado, y esta maquina a su vez la utilizamos de dos "modos" o como PC de escritorio o como Servidor de Red, de archivos, web... lo que sea.
Esta claro que si vamos a utilizar la maquina como PC de escritorio vamos a necesitar un entorno gráfico y otros servicios al gusto del consumidor. En cambio si lo vamos a utilizar como servidor es totalmente innecesario un entorno gráfico, pero si es interesante que cargue en el arranque los servicios a los que esta destinado.
Para simplificar esto lo ideal seria utilizar dos runlevels, cada uno con un numero distinto, uno para la carga del servidor y el otro para el PC de escritorio. Ademas, si durante un tiempo solo fuéramos a utilizar el PC como servidor podríamos configurar el sistema para que cargue directamente con el runlevel deseado.

Existen algunos runlevels "reservados", el 0 y el 6, que se usan para apagar y reiniciar la maquina respectivamente ( es obvio que si configuras tu maquina para que arranque con cualquiera de estos dos runlevels no arrancara, así que ojo con estas cosas). El runlevel 1 esta reservado para el modo monousuario, que se usa para administrar la maquina y no tiene acceso a red. El 3 y el 5 se usan para el arranque en multiusuario, uno con arranque gráfico y el otro sin él.

Los runlevels, como ya hemos dicho son scripts de inicio de sistema, se encuentran en /etc/rcN.d, donde N es un numero para identificar cada runlevel, del 0 al 6, en el interior de estos directorios se encuentran enlaces simbólicos a los scripts contenidos en /etc/init.d, cada uno de estos enlaces mandara el parámetro start al servicio asociado y hará que arranque en el inicio del sistema.

Contenido de /etc/rc3.d


Como podemos ver el contenido de este directorio son enlaces simbólicos a los distintos servicios.
Los nombres de los enlaces siguen una nomenclatura ANNservicio, donde A es una letra, y NN un numero entero de dos cifras, esto es para que se carguen los servicios ordenados de forma alfabética, no tiene mayor importancia, a no ser que un servicio dependa de otro, en ese caso hay que tenerlo en cuenta.

Llegados a este punto tenemos una buena base sobre lo que son los runlevels en sistemas *nix, y para ir un poco mas alla, hablaremos sobre como configurar la maquina para que arranque en un determinado runlevel.

El primer proceso que se carga en un sistema *nix despues de la carga del kernel en memoria es el llamado proceso init, contenido en /sbin/init, este proceso (entre otras cosas) lee el archivo /etc/inittab, y de ahi determina en que runlevel arrancar.


Contenido de /etc/inittab

En la imagen vemos un extracto de mi inittab, en él he resaltado en blanco la linea en la que podemos modificar el runlevel de arranque, en mi caso, al tratarse de un sistema Debian el runlevel por defecto es el 2, equivalente al runlevel 5 anteriormente citado (multiusuario con arranque gráfico).
En rojo he resaltado una linea que me ha parecido interesante, y es que esta linea indica al sistema que hará en caso de arrancar en modo monousuario. En este caso indica que se ejecutar sulogin, para autenticar al usuario root, imaginaos lo que se puede hacer en una maquina con la que tengas acceso fisico a ella y una LiveCD... ;) y es que como una vez me dijo alguien... una maquina solo es segura si se encuentra aislada en una habitacion, sin que nadie mas que el administrador tenga acceso.

Por supuesto, el inittab tiene mucha mas chicha, que vosotros mismos podréis descubrir con un man inittab o con el gran Google.

Por ultimo ya, si quereis cambiar el runlevel sobre la marcha...

# telinit -t SEC NUM

Siendo SEC el numero de segundos que se esperara a un proceso antes de matarlo, por defecto es 5 segundos, y NUM, por supuesto, el numero de runlevel al que se desea cambiar. Esto solo lo podrán hacer usuarios con permisos, puesto que claro esta, no podran matar un proceso si no les pertenece... ;)

En fin, espero que hayáis disfrutado leyendo tanto como yo escribiendo, solo ya animaros a que mireis mas a fondo las posibilidades del fichero inittab y posteeis todas vuestras dudas... sin nada mas que decir...

Nos vemos en el proximo post!