Tor (Español)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Tango-preferences-desktop-locale-modified.pngLa traducción de este artículo o sección no refleja el texto original.Tango-preferences-desktop-locale-modified.png

Motivos: Desactualizado. (Discusión en Talk:Tor (Español)#)

Tores una implementación 'open source' de 2da generación del enrutamiento de cebolla que provee libre acceso a una red proxy anónimos. Su principal objetivo es proteger el anónimato en Internet del análisis de tráfico.

Introducción

Los usuarios de la Red Tor ejecutan un enrutamiento de cebolla (onion proxy en ingles) en sus computadoras. Este software se conecta a Tor, periódicamente negocia un circuito virtual a través de la red Tor. Tor emplea criptografía en forma de capas (de ahí la analogía con la cebolla), lo que garantiza confidencialidad directa entre los routers. Al mismo tiempo, el software proxy onion presenta una interfaz SOCKS a sus clientes. Las aplicaciones que funcionan en SOCKS pueden apuntar a Tor, quien luego multiplexa el tráfico a través de un circuito virtual Tor.

Advertencia: Tor en si mismo no es todo lo que necesitas para mantener el anonimato. Hay otros escollos que te debes cuidar (ver: ¿Quieres que Tor funcione realmente?).

A través de este proceso el onion proxy maneja el trafico en la red para brindar anonimato al usuario final. El anonimato del usuario se mantiene encriptando el trafico, enviadolo a traves de otros nodos de la red Tor, y desencriptandolo en un último nodo para recibir tu tráfico antes de reenviarlo al servidor que fue especificado. Aunque Tor es considerado más seguro que las conexiones directas DNS (sin proxy) comunmente usadas, pueden ser considerablemente más lentas debido a la gran cantidad de tráfico re encaminado. Además, aunque Tor provee protección contra el análisis del tráfico, no puede evitar la confirmación en los límites de la red Tor (entrando y saliendo de la red).

Vea Wikipedia:Torpara más información.

Instalación

Instalar tor está disponible en los repositorios oficiales.

En general, acederás s Tor usando el "Tor Browser", disponible como el paquete tor-browserAUR o como ejecutable portable.

El armAUR (de sus siglas en ingles Anonymizing Relay Monitor) es un paquete que provee una terminal para monitorear el uso de banda ancha, detalles de la conexión y más.

Configuración

Por defecto Tor lee la configuración del archivo /etc/tor/torrc. Las opciones de configuración se encuentran explicadas en tor(1) en el la página de Tor. La configuración por defecto debería funcionar bien para la mayoría de los usuarios de Tor.

Hay potenciales conflictos entre configuraciones dentro de torrc y aquellas en tor.service.

  • En torrc, el RunAsDaemon debería por defecto estar puesta en 0, ya que Type=simple está colocado en el [Service] sección dentro del archivo tor.service.
  • En torrc, User no debería ser activado, a menos que User= este puesto en root en la [Service] sección dentro de tor.service.

Configuración de Relevos

El máximo número de descriptores de archivos que pueden ser abiertos por Tor puede ser fijado con LimitNOFILE en tor.service. Relevos rápidos pueden requerir aumentar este valor.

Si su ordenador no está corriendo un servidor web, y no ha colocadoAccountingMax, considere cambiar su ORPort a 443 y/o su DirPort a 80. Muchos usuarios de Tor quedan retenidos detrás de cortafuegos que solo les permite navegar en la web, y este cambio les permitirá alcanzar su sesión Tor. Si ya está usando los puertos 80 y 443,otros puertos útiles son 22, 110, y 143.[1] Estos no son puertos con privilegio, por lo que para serlos Tor debe correrse como root, colocando User=root en el archivo tor.service y User tor en el archivo torrc.

Tal vez le guste revisar Ciclo de Vida de un Nuevo Relevo[enlace roto 2021-11-19] de la documentación Tor.

Corriendo Tor en un Chroot

Advertencia: Conectarse vía telnet al puerto local ControlPort parece no funcionar cuando se usa Tor en un chroot

Por motivos de seguridad puede ser deseable correr Tor en un Chroot. El siguiente script creará un chroot apropiado en /opt/torchroot:

~/torchroot-setup.sh
#!/bin/bash
export TORCHROOT=/opt/torchroot

mkdir -p $TORCHROOT
mkdir -p $TORCHROOT/etc/tor
mkdir -p $TORCHROOT/dev
mkdir -p $TORCHROOT/usr/bin
mkdir -p $TORCHROOT/usr/lib
mkdir -p $TORCHROOT/usr/share/tor
mkdir -p $TORCHROOT/var/lib

ln -s /usr/lib  $TORCHROOT/lib
cp /etc/hosts           $TORCHROOT/etc/
cp /etc/host.conf       $TORCHROOT/etc/
cp /etc/localtime       $TORCHROOT/etc/
cp /etc/nsswitch.conf   $TORCHROOT/etc/
cp /etc/resolv.conf     $TORCHROOT/etc/
cp /etc/tor/torrc       $TORCHROOT/etc/tor/

cp /usr/bin/tor         $TORCHROOT/usr/bin/
cp /usr/share/tor/geoip* $TORCHROOT/usr/share/tor/
cp /lib/libnss* /lib/libnsl* /lib/ld-linux-*.so* /lib/libresolv* /lib/libgcc_s.so* $TORCHROOT/usr/lib/
cp $(ldd /usr/bin/tor | awk '{print $3}'|grep --color=never "^/") $TORCHROOT/usr/lib/
cp -r /var/lib/tor      $TORCHROOT/var/lib/
chown -R tor:tor $TORCHROOT/var/lib/tor

sh -c "grep --color=never ^tor /etc/passwd > $TORCHROOT/etc/passwd"
sh -c "grep --color=never ^tor /etc/group > $TORCHROOT/etc/group"

mknod -m 644 $TORCHROOT/dev/random c 1 8
mknod -m 644 $TORCHROOT/dev/urandom c 1 9
mknod -m 666 $TORCHROOT/dev/null c 1 3

if [[ "$(uname -m)" == "x86_64" ]]; then
  cp /usr/lib/ld-linux-x86-64.so* $TORCHROOT/usr/lib/.
  ln -sr /usr/lib64 $TORCHROOT/lib64
  ln -s $TORCHROOT/usr/lib ${TORCHROOT}/usr/lib64
fi

Luego de correr el script como root, Tor puede ser ejecutado en chroot con el comando:

# chroot --userspec=tor:tor /opt/torchroot /usr/bin/tor

o si utiliza systemd recargue el servicio:

/etc/systemd/system/tor.service.d/chroot.conf
[Service]
User=root
ExecStart=
ExecStart=/usr/bin/sh -c "chroot --userspec=tor:tor /opt/torchroot /usr/bin/tor -f /etc/tor/torrc"
KillSignal=SIGINT

Corriendo Tor en un contenedor systemd-nspawn con una interfaz de red virtual

En este ejemplo crearemos un contenedor systemd-nspawn llamado tor-exit con una interfaz de red virtual macvlan.

Vea systemd-nspawn y systemd-networkd para documentación completa.

Instalación y Configuración del Servidor

En este ejemplo el contenedor se alojará en /srv/container:

# mkdir /srv/container/tor-exit

Instalar el arch-install-scripts.

Instale base, tor y armAUR y deselecione linux como en Systemd-nspawn (Español)#Crear e iniciar Arch Linux en un contenedor:

# pacstrap -i -c -d /srv/container/tor-exit base tor arm

Cree el directorio si no existe:

# mkdir /var/lib/container
Nota: Los Symlinks para nspawn actualmente están dañados (como en 2016-02-04; vea https://github.com/systemd/systemd/issues/2001), y recibirá el error "too many levels of symlinks". Como una (posiblemente insegura) solución, simplemente "pacstrap" su instalación en el directorio contenedor.

Symlink al registro del contenedor del servidor, como en Systemd-nspawn_(Español)#Activar inicio automático de los contenedores:

# ln -s /srv/container/tor-exit /var/lib/container/tor-exit

Interfaz de red virtual

Crea un directorio de Deposito para el servicio de contenedor:

# mkdir /etc/systemd/system/systemd-nspawn@tor-exit.service.d
/etc/systemd/system/systemd-nspawn@tor-exit.service.d/tor-exit.conf
[Service]
ExecStart=
ExecStart=/usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --network-macvlan=$INTERFACE --private-network --directory=/var/lib/container/%i
LimitNOFILE=32768

--network-macvlan=$INTERFACE --private-network crea automáticamente un macvlan llamado mv-$INTERFACE dentro del contenedor, el cual no es visible desde el servidor. --private-network está implícito por --network-macvlan= de acuerdo con systemd-nspawn(1). Esto es aconsejable por seguridad ya que le permitirá dar una IP privada al contenedor, y no conocerá la IP de su máquina. Esto ayudará a esconder pedidos de DNS.

LimitNOFILE=32768 por Tor#Raise maximum number of open file descriptors.

Ponga a punto systemd-networkd de acuerdo con su red en /srv/container/tor-exit/etc/systemd/network/mv-$INTERFACE.network.