martes, 22 de octubre de 2013

Actividad Semaforos

¿Qué es un semaforo y para qué se utilizan?

Un semáforo es una estructura diseñada para sincronizar dos o más threads o procesos, de modo que su ejecución se realice de forma ordenada y sin conflictos entre ellos.
El por qué no se pueden usar directamente otras estructuras mas clásicas, como por ejemplo usar una variable común para decidir si se puede o no acceder a un recurso, se debe a que estamos en un sistema multitarea: hacer esto implicaría realizar una espera activa (un bucle, comprobando constantemente si la variable está o no a 0, y así saber si podemos seguir ejecutando o no). Por otro lado, puede ocurrir algo mucho peor: supongamos que un proceso comprueba la variable, y ve que el recurso está libre, por lo que procedería a cambiar dicha variable de valor y seguir. Pues bien, si justo después de la comprobacion pero antes de que cambie el valor se conmuta de tarea (puede pasar, pues el sistema operativo puede hacerlo en cualquier momento), y el nuevo proceso comprueba la variable, como todavía no se ha actualizado, creerá que el recurso está libre, e intentará tomarlo, haciendo que ambos programas fallen. Lo peor del caso es que se tratará de un error aleatorio: unas veces fallará (cuando se produzca cambio de tarea en ese punto) y otras no.
Para evitarlo, se idearon los semáforos. Un semáforo básico es una estructura formada por una posición de memoria y dos instrucciones, una para reservarlo y otra para liberarlo. A esto se le puede añadir una cola de threads para recordar el orden en que se hicieron las peticiones.
Se empieza por inicializar la posición de memoria a 1 (o al valor correspondiente si ese recurso concreto admite más de un acceso simultáneo). Esto se hace en el inicio del programa principal.
A continuación, cada vez que un thread o un proceso quiera acceder a dicho recurso (por ejemplo, un fichero), hará primero una petición con la primera de las llamadas disponibles. Cuando el S.O. ejecuta esa llamada, comprueba el valor que hay en la posición de memoria del semáforo, y si es distinta de cero, se limita a restarle 1 y devolver el control al programa; sin embargo, si ya es cero, duerme al proceso que hizo la petición y lo mete en la cola de procesos, en espera de que el semáforo se ponga a un valor distinto de cero.
Por último, cuando el proceso ha terminado el acceso al recurso, usa la segunda llamada para liberar el semáforo. Cuando el S.O. la ejecuta, comprueba si la cola del semáforo está vacia, en cuyo caso se limita a incrementar el valor del semáforo, mientras que si tiene algún proceso, lo despierta, de modo que vuelve a recibir ciclos de CPU y sigue su ejecución. Si había varios procesos en espera, se irán poniendo en marcha uno tras otro a medida que el anterior va liberando el semáforo. Cuando termina el último, el semáforo se vuelve a poner a 1. Se trata, por tanto, del mismo proceso que seguiríamos con la variable, pero con la ventaja de que es un mecanismo estandar para todos los procesos, y como es una operacion atómica (esto es, que durante su ejecución no se admiten cambios de tarea), no surje el problema de que una conmutación pueda producir errores aleatorios.
Vemos que la primera vez que un proceso usa el semáforo, este tiene valor 1, por lo que pasa a cero y el proceso puede acceder al recurso. Si durante ese tiempo otro proceso quiere acceder también, al usar el semáforo, este tiene valor cero, por lo que el S.O. deja de darle ciclos de CPU. Cuando el primer proceso ha terminado, libera el recurso, con lo que el S.O. puede comprobar que el segundo proceso está esperando, por lo que le vuelve a dar ciclos. En este punto, el proceso sigue como si nunca hubiese sido detenido. Este tipo de semáforos son los de Exclusión mútua, o Mutex.

Otra utilización de los semáforos es cuando uno o más procesos tienen que esperar a que otro halla terminado una tarea. Para ello, el primer proceso borra el semáforo y con una primitiva adecuada se pone a esperar a que el semáforo se active (posted). Mientras, el segundo proceso va trabajando, y cuando termina lo que tiene que hacer, activa el semáforo, con lo que el primer proceso vuelve a ponerse en marcha, sin haber desperdiciado ciclos de CPU. Son semáforos evento. Vemos que puede haber varios procesos esperando por el mismo semáforo, y el thread que lo activa no tiene por qué saber cuantos son. Cobran su importáncia cuando el evento no es producido por otro thread, sino por otras funciones del S.O., como las de sincronización, que veremos más adelante.

Los semáforos se identifican con un nombre, el cual tiene la forma \SEM32\un_nombreUn_nombre es el identificador del semáforo. Existe la posibilidad de crear un semáforo sin nombre, en cuyo caso se puede especificar si es un semáforo compartido o no (por otros procesos).

martes, 8 de octubre de 2013

ALGORITMOS DE PROCESOS

La política más simple de planificación es la FCFS. A medida que un proceso pasa al estado listo, este es agregado a la cola de listos. Cuando el proceso que actualmente está ejecutando cesa su ejecución entonces el proceso más viejo en la cola es seleccionado para correr. La implementación de esta política es a través de colas FIFO (First-In, First-Out). Cuando el CPU está libre, éste es asignado al proceso que está en la cabeza de la cola.
FCFS es un algoritmo nonpreemptive, pues una vez que el CPU es asignado a un proceso, este lo mantiene hasta que espontáneamente lo suelta, ya sea porque el proceso finalizó o por algún requerimiento de E/S.
El tiempo de espera bajo esta política tiende a ser alto. Además , tiende a favorecer aquellos procesos que requieren más tiempo de CPU (CPU-bound). Consideren el caso donde tenemos una colección de procesos. Uno de ellos utiliza más CPU que los otros, y el resto de los procesos requieren más trabajo de E/S (I/O-bound). Cuando el proceso CPU-bound ejecuta, los otros procesos esperan. Algunos de estos estarán en las colas de los dispositivos de E/S pero eventualmente en algún instante pasarán a la cola de procesos listos. En este momento, muchos de los dispositivos de E/S estarán ociosos. Cuando el proceso en ejecución deje el estado Running, los procesos I/O-bound pasarán a ejecutar y rápidamente volverán a bloquearse en espera de E/S. Si el proceso CPU-bound se encuentra bloqueado, entonces el procesador estará ocioso. Por lo tanto, FCFS puede ocasionar un uso indeficiente tanto del procesador como de los dispositivos de E/S.



Proceso
Tiempo de llegada
Tiempo de Servicio
Tiempo de Comienzo
Tiempo de Finalización
Turnaround
Tiempo de Espera
A
0
1
0
1
1
0
B
1
100
1
101
100
0
C
2
1
101
102
100
101-2=99
D
3
100
102
202
199
102-3=99
Promedio
    
100
49.50


Proceso
Tiempo de llegada
Tiempo de Servicio
Tiempo de Comienzo
Tiempo de Finalización
Turnaround
Tiempo de Espera
B
0
100
0
100
100
0
D
1
100
100
200
199
100-1=99
A
2
1
200
201
201-2=199
200-2=198
C
3
1
201
202
202-3=199
201-3=198
Promedio
    
232
123.50



El tiempo promedio de espera bajo una política FCFS generalmente no es mínimo y puede variar sustancialmente si hay mucha diferencia entre las duraciones de ciclo de los procesos.

En el segundo ejemplo, se presenta un efecto convoy donde los procesos esperan a que un proceso grande deje el CPU


Shortest-Job-First (SJF)
Este algoritmo selecciona al proceso con el próximo tiempo de ejecución más corto. Un proceso corto saltará a la cabeza de la cola. La ejecución de un proceso consiste en ciclos de ejecución de CPU y ciclos de espera por E/S. El algoritmo selecciona aquel proceso cuyo próximo ciclo de ejecución de CPU sea menor. El problema está en conocer dichos valores, pero podemos predecirlos usando la información de los ciclos anteriores ejecutados.

SJF
Proceso
Tiempo de llegada
Tiempo de Servicio
Tiempo de Comienzo
Tiempo de Finalización
Turnaround
Tiempo de Espera
A
0
8
0
8
8
0
B
1
4
8
12
12-1=11
8-1=7
C
2
9
17
26
26-2=24
17-2=15
D
3
5
12
17
17-3=14
12-3=9
Promedio
    
14.25
10.33

FCFS
Proceso
Tiempo de llegada
Tiempo de Servicio
Tiempo de Comienzo
Tiempo de Finalización
Turnaround
Tiempo de Espera
A
0
8
0
8
8
0
B
1
4
8
12
12-1=11
8-1=7
C
2
9
12
21
21-2=19
12-2=10
D
3
5
21
26
26-3=23
21-3=18
Promedio
    
20.33
11.66

El SJF es probablemente optimal pues da el mínimo tiempo promedio de espera. El problema está en conocer la duración del próximo requerimiento de CPU para cada proceso. Esta duración puede predecirse suponiendo que el próximo ciclo puede ser similar a los anteriores.

Este algoritmo puede ser preemptive o no. Cuando un nuevo proceso llega a la cola de procesos listos mientras otro se está ejecutando, el nuevo proceso puede tener el ciclo de duración de CPU más corto que lo que falta por ejecutar del proceso actual. En el caso de un esquema preemptive, el CPU será asignado al proceso que acaba de llegar a la cola. Este algoritmo se conoce como Shortest Remaining Time First (SRTF).


Prioridad
En muchos sistemas, los procesos tienen prioridades asignadas, y el planificador escogerá aquel proceso con mayor prioridad.
Cuando un proceso debe ser seleccionado, el planificador por prioridades seleccionará aquel proceso que tenga mayor prioridad. Si hay más de un proceso entonces se deberá seguir alguna política de selección.
Un problema que presenta un esquema de planificación por prioridades puro es que los procesos con la prioridad más baja pueden sufrir de inanición o bloqueo indefinido. Un proceso que está listo para correr pero espera porque siempre hay procesos con prioridad más alta.
Para evitar este problema, se puede ir incrementando gradualmente la prioridad de los procesos (envejecimiento).
SJF es un caso especial de planificación por Prioridad, donde la prioridad es el inverso del valor estimado del próximo ciclo de CPU ( a menor ciclo, mayor prioridad).

Proceso
Tiempo de llegada
Prioridad
Tiempo de Servicio
Tiempo de Comienzo
Tiempo de Finalización
Turnaround
Tiempo de Espera
A
0
2
8
0
8
8
0
B
1
1
4
22
26
26-1=25
22-1=21
C
2
4
9
8
17
17-2=15
8-2= 6
D
3
2
5
17
22
22-3=19
17-3=14
Promedio
     
16.75
10.25

Este algoritmo puede ser preemptive y nonpreemptive. En el caso de preemptive, cuando un proceso llega a la cola de procesos listos, su prioridad es comparada con la prioridad del proceso que está corriendo. Si la prioridad del nuevo proceso es mayor, entonces se atiende al nuevo proceso.


Round Robin
Una manera rápida de reducir la penalización que los procesos cortos sufren con FCFS es usar expropiación basada en un reloj. Una interrupción de reloj es generada a intervalos periódicos. Cuando ocurre la interrupción, el proceso en ejecución es colocado en la cola de procesos listos y el próximo trabajo es seleccionado basado en el esquema FCFS. A cada proceso se le da un trozo de tiempo.
La principal decisión de diseño que surge con Round Robin es el tamaño del trozo o quantum. Si el quantum es muy corto, entonces los procesos se moverán a través del sistema rápidamente. Por otro lado, hay un cierto overhead o desperdicio de tiempo envuelto con el manejo de la interrupción de reloj y las funciones de planificación y despacho. Por lo tanto quanta muy pequeños deberían evitarse. Una alternativa es usar un quantum de tiempo que sea un poco más grande que el tiempo promedio requerido para una interacción típica.
Round Robin es particularmente efectivo para sistemas generales de tiempo compartido. Se implementa con una cola FIFO de procesos. Nuevos procesos son agregados al final de la cola, y toma el proceso que se encuentra en la cabeza de la cola. Actualiza el timer para que interrumpa después del quantum de tiempo.
El desempeño de este algoritmo dependerá del tamaño del quantum. Si el quantum es infinito entonces degenera en FCFS. Si el quantum es muy pequeño entonces Round Robin es llamado compartición de CPU y en teoría pareciera que cada proceso tiene su propio procesador corriendo a 1/n la velocidad del procesador real.
Bajo este esquema es importante considerar el efecto del cambio de contexto.

Round Robin (RR q=3)
Proceso
Tiempo de llegada
Tiempo de Servicio
Tiempo de Comienzo
Tiempo de Finalización
Turnaround
Tiempo de Espera
A
0
8
0, 12, 21
3, 15, 23
23
15
B
1
4
3, 15
6, 16
16-1=15
11
C
2
9
6, 16, 23
9, 19, 26
26-2=24
15
D
3
5
9, 19
12,21
21-3=18
11
Promedio

lunes, 7 de octubre de 2013

Anonimato

PRIVACIDAD Y ANONIMATO EN LA RED

El anonimato y el cifrado son dos conceptos relacionados pero no iguales. El Anonimatogarantiza que nunca nadie pueda saber quién eres en el mundo presencial y es una necesidad para muchos activistas (especialmente para aquellos que luchan en países o entornos muy hostiles en los que puede peligrar su vida o la de sus familiares).
Para garantizar el anonimato hay que desviar el tráfico de la red a través de Proxies Anónimos que ocultan el origen de las peticiones de páginas web de tal manera que no se puede saber quién ha accedido a cierta web o quién ha escrito un post o comentario. No es nada fácil conseguirlo de forma eficaz y fluida pero con un poco de esfuerzo podrás conseguirlo.
NOTA
La mayoría de las técnicas expuestas a continuación están encaminadas a ocultar el origen de las comunicaciones, o evitar que se pueda relacionar tráfico y mensajes con detalles identificativos personales (p.e. nombre, IP, localización, etc.). Pero no olvides que en gran medida tu identidad en la red no es una relación con aspectos de tu cuerpo físico, sino la posición que ocupas en una red social. A menudo, aunque tu identidad en ciertas capas de redes sociales estén bien protegidas, se puede averiguar tu identidad por mero análisis topológico (p.e. aunque los datos de tu perfíl y tu nombre en facebook protejan tu anonimato, la posición que ocupas en tu red social delata tu identidad). Para comprender un poco mejor este asunto lee este artículo sobre cómo pudieron identificar a toda una serie de personas con análisis topológico de redes comparando twitter con flickr.
Anonimato en el correo electrónico
Todo correo electrónico (incluido el que se envía por webmail: gmail, hotmail, etc.) lleva consigo la IP de quien envió el correo electrónico y esta IP puede relacionarse fácilmente con la localización y el nombre de la persona que contrata la línea (aunque para saber el nombre de la persona hace falta una orden judicial).
  • Cómo enviar correos anónimos
Navegación anónima en la red
IMPORTANTE
La única opción fácil y realmente segura de usar anonimamente un navegador es instalando Tor Bundle
El navegador web se ha convertido en la principal interfaz del ciberespacio. Si quieres garantizar tu anonimato debes usar software libre, Firefox es el más completo y ofrece muchas herramientas para garantizar el anonimato. Lo primero que tienes que hacer es configurar las preferencias de privacidad. Firefox también permite que navegues de forma privada con una opción rápida que no guarda el historial, ni las cookies (pequeños paquetes de información que dejan las páginas web en tu ordenador). Pero nada de esto impedirá que terceras personas sepan que has visitado cierta página. Cuando navegamos por internet los servidores obtienen información que puede identificarte, en concreto tu dirección IP. La mejor forma de ocultar tu IP es usar un proxy (una máquina intermedia que oculte tu IP original). Existe un plugin de firefox que te permite usar y configurar proxies de forma sencilla: FoxyProxy. Instalatelo ahora mismo ;-)
El problema es encontrar un servidor proxy que funcione y sea fiable. Puedes usar una conexión VPN (ver más abajo) o usar un proxy sólo para Firefox.
Pero debes ocultar también mucha información que tu navegador da a los servidores de páginas web. Para ofuscar esta información debes usar Privoxy:
$ sudo aptitude install privoxy
Ahora vas a la configuración de FoxyProxy y añades el siguiente proxy: direccion 127.0.0.1 (esta es tu máquina), puerto 8118, y activas las opciones "SOCKS proxy?" y "SOCKS v4/4a". A partir de ahora tu tráfico se redirigirá hacia tu máquina y de allí a privoxy (que está configurado por defecto para darte salida por el puerto 8118).
Ahora ya puedes combinar privoxy con otra herramienta que va a ofuscar tu IP de verdad, se trata de TOR (ver más abajo). Tor te ofrece una red de servidores que, saltarás de una a otra borrando tus rastros de IP hasta que salgas de la red TOR para acceder a una web.
La combinación entre TOR y privoxy o polipo te da un anonimato bastante seguro, pero la salida de TOR puede estar comprometida, puede hacerte ataques de man-in-the-middle. Osea no hagas cosas como consultar tu cuenta de correo via web ;-)
Para asegurarte una navegación realmente segura, además de TOR se recomiendo combinarlo con I2P2
Los siguientes addons o plugins de Firefox son "obligatorios" si quieres proteger tu anonimato incluso usando TOR y I2P2:
https://addons.mozilla.org/addon/722 no script
https://addons.mozilla.org/es-ES/firefox/addon/5207/ cs lite
https://addons.mozilla.org/sv-SE/firefox/addon/2275/ tor buttom
https://addons.mozilla.org/es-ES/firefox/addon/953/ ref control
https://addons.mozilla.org/en-US/firefox/addon/6623/ better privacy
https://addons.mozilla.org/en-US/firefox/addon/59/ user agent switcher
https://addons.mozilla.org/en-US/firefox/addon/1237/ quick java
https://www.eff.org/https-everywhere https everywhere
https://addons.mozilla.org/en-US/firefox/addon/scroogle-ssl-search/ scroogle scape

o directamente instala el mejor kit... https://addons.mozilla.org/en-US/firefox/collections/theparadox/paranoia/
Cómo crear un perfil especial de Firefox para anonimato
No es mala idea tener un perfil de navegación especialmente asegurado ya que en muchos casos el anonimato y la seguridad en la navegación web puede rebajar la funcionalidad y puede que dejes de usar los plugins de anonimato para tareas cotidianas. Cuando arrancas el navegador se carga la configuración por defecto con los archivos que tienes en (normalmente) en la carpeta .mozilla-firefox en tu home: /home/NOMBRE_USUARIO/.mozilla-firefox. Para crear un segundo perfil y activarlo lo primero es matar todos los procesos de firefox y ejecutar firefox con la opción -ProfileManager desde la línea de comandos:
$ sudo killall firefox* $ firefox -ProfileManager
Creamos el perfil anónimo (nombre del perfil "anon") y le decimos que use la .anon/mozilla-profile/ como carpeta propia (esta carpeta la podemos usar además para guardar otras configuraciones). El problema es que seguramente ahora firefox arranque por defecto con ese perfil, y nosotras queremos usar nuestro perfil normal en nuestra vida cotidiana. Así que volvemos a $ firefox -ProfileManager y seleccionamos Default (que seguramente fuera nuestro perfil normal). Fijaros que hemos dejado por defecto la opción de no preguntar al principio. Mejor así porque vamos a crear un enlace directo para arrancar el perfil anonimo directamente y dejar el otro por defecto. Con el siguiente comando podremos arrancar directamente el perfil anónimo:
$ firefox -P anon --no-remote
Si nos da problemas el nuevo perfil, seguramente el problema se solucione si borramos los siguiente archivos:
$ cd .anon/mozilla-profile $ rm compreg.dat extensions.cache extensions.ini extensions.rdf pluginreg.dat
Para facilitar aún más la cosa podemos crear un icono para lanzar nuestro perfil anonimo. Vamos a nuestra barra de herramientas (donde tengamos las aplicaciones que lanzamos comun mente) en un espacio vacío hacemos click con el botón derecho y añadimos Lanzadera de Aplicación Personalizada con el comando de arriba: "firefox -P anon --non-remote". El problema es si antes de lanzar el firefox a secas lanzamos el perfil anon, si después lanzamos firefox a secas va a arrancar otra instancia del perfil anon. Para evitar esto el botón de firefox en la barra de herramientas tiene que lanzar el comando: "firefox -P default --no-remote" para ello vamos encima de dicho botón, click con el botón izquierdo del ratón, vamos a Propiedades y sustituimos el comando Firefox por "firefox -P default --no-remote".
NOTA
Una vez que tenemos el perfil especial anon, tenemos que instalar todos los plugins y hacer las configuraciones apropiadas, el perfil arrancará la primera vez un firefox sin ningún plugin.
_________________________________________________________________________
TOR:
TOR es una red de proxies que se insertan entre tú y el servidor al que te conectes. La comunicación circulará saltando de un nodo de TOR a otro de forma cifrada de tal manera que es imposible saber a dónde estás accediendo, incluso aunque alguno de los nodos intermedios de TOR esté comprometido.
Tor también es conocido como Onion Routing (enrutado de cebolla) por las capas intermedias que introducen. A través de tor se puede acceder a páginas de dominio de nivel superior terminado en .onion.
IMPORTANTE
YA NO SE RECOMIENDA USAR TO BUTTON es mejor que uses Tor Bundle
NOTA IMPORTANTE
TOR no va a a hacer anónimo automáticamente todo tu tráfico, tienes que usar y configurar programas que estén preparados para ello. Para conseguir el máximo anonimato con TOR tendrás que tomar algunas medidas adicionales de seguridad y renunciar a algunas cosas como Java, Flash, ActiveX, RealPlayer, Quicktime o los plugins de PDF de Adobe. Todos estos plugins pueden revelar información que te identifica. Cuidado con las cookies, también pueden revelar información sensible y por eso es recomendable que las borres. Lee la lista completa de Warnings después de instalar Tor. Es buena costumbre tener un navegador aparte (u otro perfil de Firefox, p.ej) configurado de forma segura con Torbutton y el resto de extensiones necesarias (ver sección de navegación anónima y segura) para usar sólo para propósitos relacionados con la navegación anónima.
TOR Bundle: navega con TOR sin instalaciones
Si quieres navegar de forma anónima con Tor sin instalar ningún software en la máquina a la que tienes acceso, puedes usar Tor browser bundle. Los pasos que tienes que seguir son los siguientes:
  • Descargar el software, será un fichero tar.gz para Linux, o un ejecutable para Windows.
  • Descomprimir el fichero tar.gz en caso de usar Linux.
  • No te olvides de verificar el fichero siguiendo las instrucciones de torproject.org (si tienes tu conexión intervenida podrían haberte colado una versión maligna de Tor).
    • Desgraciadamente las instrucciones de cómo verificar la autenticidad del programa son malísimas, aquí van las nuestras (recuerda descargar siempre las aplicaciones desde la web original de tor, y que se vea bien en el navegador que el https está verificado, no te fies de otros enlaces):
      • Descarga el programa desde torproject.org y descarga también la firma (aparece entre paréntesis debajo del botón de descarga tal que así (sig) con en enlace a un archivo .asc). Probablemente tu navegador abra directamente el archivo porque es un archivo de texto, así que guardalo en la misma carpeta en la que has guardado el tar.gz de torbundle
      • Importa la clave de Eric
gpg --keyserver hkp://keys.gnupg.net --recv-keys 0x63FEE659
      • Comprueba la clave
gpg --fingerprint 0x63FEE659
      • Debería de salirte lo siguiente:
pub 2048R/63FEE659 2003-10-16 Key fingerprint = 8738 A680 B84B 3031 A630 F2DB 416F 0610 63FE E659 uid Erinn Clark <erinn@torproject.org> uid Erinn Clark <erinn@debian.org> uid Erinn Clark <erinn@double-helix.org> sub 2048R/EB399FD7 2003-10-16
      • Ahora entra en la carpeta en la que hayas descargado torbundle y su firma y ejecuta el siguiente comando:
gpg --verify NOMBRE_ARCHIVO_TOR.asc NOMBRE_ARCHIVO_TOR.tar.gz
  • Ejecutar el script start-tor-browser (o lanzar el .exe en Windows) que se encuentra dentro del directorio tor-browser_en-US. Al ejecutar este script arrancará un navegador, namoroka, a través del cual puedes navegar anónimamente. Para lanzar el programa sólo tienes entrar en la carpeta de tor y ejecutar este comando desde la terminal:
$ ./start-tor-browser
Todo esto te servirá para navegar con Firefox a través de TOR, pero no para otros programas (p.e. mensajería instantánea, o ssh). Para ello tendrás que Torificar, es decir, redirigir el tráfico de cada programa a la red TOR.
https://www.torproject.org/download/download.html.en download/descargar
https://www.torproject.org/dist/manual/short-user-manual_es.xhtml manual de usuario...
__________________________________________________________________________
TOR relay: participa en la red TOR siendo un nodo más
Participa en la red Tor convirtiéndote en uno de los nodos intermedios: Instrucciones para ser un relay de Tor. Puedes usar el programa Vidalia para configurar tu ordenador como relay (nodo intermediario de TOR).
Si te encuentras con dificultades para configurar de forma automática la redirección de puertos, consulta la web portforward.com donde encontrarás mucha información de todo tipo de routers. Busca el tuyo y ahí encontrarás la información necesaria para el redireccionamiento.
Además ponen a disposición una herramienta (Portcheck) que te ayuda a comprobar y asegurarte de que realmente has configurado bien el router. Te servirá para saber seguro si la configuración es correcta y desde la red Tor van a poder conectar a tu nodo.
http://www.torproject.org/docs/tor-doc-relay.html.en instrucciones tor relay.
https://www.torproject.org/projects/vidalia.html.en vidalia.
http://portforward.com/ verificador de router
http://portforward.com/help/portcheck.htm portcheck...puertos .
___________________________________________________________________________
I2P2
Si Tor es un tipo de Onion Routing (enrutado de cebolla), I2P2 es un tipo de Garlic Routing (enrutado de ajo). El sistema es parecido al de TOR, aunque está menos desarrollado y está más centrado en compartir archivos. En la página de I2P2 encontrarás una comparativa entre TOR y I2P2. Una de las diferencias fundamentales es que I2P2 está programado en Java y requiere tener Java instalado. Por lo demás la arquitectura de I2P2 está diseñada de forma que, en principio, es menos vulnerable a ataques: enrouta de forma diferente cada paquete (en lugar de cada conexión como hace TOR) y el camino de ida y de vuelta son distintos.
  • Primero entiende cómo funciona i2p2 leyendo esta introducción al funcionamiento de I2P2 (en inglés) y versión reducida en castellano.
  • Sigue las instrucciones de instalación y configuración de I2P2. Para Ubuntu es tan fácil como
$ sudo apt-add-repository ppa:i2p-maintainers/i2p $ sudo apt-get update $ sudo apt-get install i2p
Ya puedes lanzar i2p (no se recomienda hacerlo como root):
$ i2prouter start
Ya tenemos el i2prouter funcionando como demonio. Ahora abre una pestaña de un navegador y comprueba que funciona visitando la siguiente dirección

http://127.0.0.1:7657/
Aquí podras configurar diversos servicios de i2p, la interfaz es fácil de usar pero i2p da muchas posibilidades y es fácil que te pierdas. FALTA COMPLETAR CON LA CONFIGURACIÓN MÁS IMPORTANTE (navegación, IRC, mail...)
http://www.i2p2.de/ descargar.download
http://www.i2p2.de/how_intro.html introduccion al i2p2
http://www.i2p2.de/download.html linux ubuntu
__________________________________________________________________________
Anonimato en los chat
Los chat irc (Internet Relay Chat) son una herramienta muy usada entre hacktivistas. Sin embargo si no tomas medidas, cada vez que entras en un canal o alguien mira en tu información de usuaria puede encontrar tu IP directamente (recuerda que también puede haber gente en modo invisible en un canal espiando dicha información). Para evitarlo puedes ejecutar el siguiente comando:
/mode TU_NICK +x
Pero este comando no funciona en freenode y otros servidores. Para conseguir que desaparezca tu IP en Freenode tienes que contactar con los administradores y pedirles que te hagan un "cloak". Para ello lo primero es seguir estas instrucciones para registrar tu nombre. Después tendrás que contactar con un administrador. Para ello ejecuta:
/stats p
Y espera a que se pongan en contacto contigo, puedes entrar al canal #freenode y preguntar allí. Ponte en contacto directo con algun miembro del "staff" para pedirle que te haga "cloak". Se respetuosa y directa.
Otra opción es uses Tor y o I2P2 o una VPN para conectarte con el servidor de chat, pero muchos servers no lo permiten. Sin embargo uno de los servidores de IRC que más garantizan el anonimato y permite que te conected por todo tipo de proxies es irc.telecomix.org. Ahí tenemos el canal de hacktivistas.

A continuación veremos como configurar diferentes proxies, para esto necesitamos tener en nuestro ordenador el navegador firefox e instalar el complemente foxyproxy.

Obtenemos una lista de proxys en la web




Ahora vamos a añadir un nuevo proxy con el complemento foxyproxy



A continuación escribiremos la direccion del proxy y el puerto que vamos a configurar




Ahora ya navegamos a traves de un proxy de Rusia.