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.
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
, elRunAsDaemon
debería por defecto estar puesta en0
, ya queType=simple
está colocado en el[Service]
sección dentro del archivotor.service
. - En
torrc
,User
no debería ser activado, a menos queUser=
este puesto enroot
en la[Service]
sección dentro detor.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
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
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
.