1. Habilita Actualizaciones Automáticas de Software

Una de las cosas más importantes para mantener la seguridad de tu relay es instalar las actualizaciones de seguridad en su momento y, mejor, de forma automática para no olvidarlas. Sigue las instrucciones para habilitar actualizaciones automáticas de software para tu sistema operativo.

2. Instala epel-release

Para instalar el paquete tor en CentOS/RHEL, es necesario habilitar el uso del repositorio EPEL. Para ello, debes instalar el paquete epel-release:

# yum install epel-release

Versiones recientes de CentOS/RHEL están usando dnf en vez de yum:

# dnf install epel-release

Si estás sobre una versión reciente que usa dnf, por favor sigue usándola para los siguientes pasos, donde yum sea llamado en esta guía de configuración.

3. Configura el Repositorio del Tor Project

Configuración del Proyecto Tor Repositorio para CentOS/RHEL consiste básicamente en configurar /etc/yum.repos.d/Tor.repo con el siguiente contenido:

[tor]
name=Tor for Enterprise Linux $releasever - $basearch
baseurl=https://rpm.torproject.org/centos/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://rpm.torproject.org/centos/public_gpg.key
cost=100

4. Instala Tor

Una vez que hayas configurado los repositorios de EPEL y de Tor, ya estás habilitado para instalar el paquete:

# yum install tor

Ten en cuenta que cuando instales el primer paquete desde el repositorio EPEL, se te solicitará verificar la clave de firma GPG de EPEL. Por favor asegúrate de que la clave coincida con la que está disponible en el sitio web del Fedora Project. Esto también ocurrirá cuando instales paquetes desde el repositorio de Tor por primera vez - de nuevo hasz de asegurarte de que la clave coincide.

5. Compila obfs4proxy y muévelo a su lugar.

Versiones muy desactualizadas de git pueden hacer que go get falle, por lo que intenta actualizar a una versión más reciente de git si te estás encontrando con este problema.

Instala el paquete golang y otras dependencias:

# yum install git golang policycoreutils-python-utils

Ahora construye el binario, y muévelo a un directorio apropiado:

export GOPATH='mktemp -d'
go get gitlab.com/yawning/obfs4.git/obfs4proxy
sudo cp $GOPATH/bin/obfs4proxy /usr/local/bin/
# chcon --reference=/usr/bin/tor /usr/local/bin/obfs4proxy

6. Edita tu archivo de configuración Tor, usualmente ubicado en /etc/tor/torrc, y reemplaza su contenido con:

RunAsDaemon 1
BridgeRelay 1

# Reemplaza "TODO1" con un puerto Tor de tu elección. Este puerto debe ser externamente
# alcanzable. Evita el puerto 9001, porque comúnmente está asociado con Tor, y
# los censores podrían estar escaneando Internet buscando este puerto.
ORPort TODO1

ServerTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy

# Reemplaza "TODO2" con un puerto obfs4 de tu elección. Este puerto debe ser
# alcanzable desde el exterior, y diferente del especificado para ORPort.
# Evita el puerto 9001, porque comúnmente está asociado con
# Tor, y los censores podrían estar escaneando Internet por el mismo.
ServerTransportListenAddr obfs4 0.0.0.0:TODO2

# Puerto de comunicación local entre Tor y obfs4. Siempre ajústalo a "auto".
# "Ext" significa "extendido", no "externo".  No intentes establecer un puerto específico
# número de puerto específico, ni escuches en 0.0.0.0.
ExtORPort auto

# Reemplaza "<address@email.com>" con tu dirección de correo electrónico, de manera que podamos contactarte si
# hay problemas con tu puente. Esto es opcional, pero te alentamos a que lo hagas.
ContactInfo <address@email.com>

# Elige un sobrenombre que te guste para tu puente. Esto es opcional.
Nickname PickANickname

No olvides cambiar las opciones ORPort, ServerTransportListenAddr, ContactInfo, y Nickname.

  • Ten en cuenta que ambos, el puerto OR de Tor y su puerto obfs4, deben ser alcanzables. Si tu puente está detrás de un cortafuegos o NAT, asegúrate de abrir ambos puertos. Puedes usar nuestra prueba para ver si tu puerto obfs4 se puede acceder desde el Internet.

7. Reinicia Tor

sudo semanage port -a -t tor_port_t -p tcp [OR port set earlier, in TODO1]

sudo semanage port -a -t tor_port_t -p tcp [obfs4 port set earlier, in TODO2]

Versiones recientes de CentOS/RHEL que vienen con systemd:

# systemctl enable --now tor
... or restart it if it was running already, so configurations take effect
# systemctl restart tor

En caso que usaras una versión más vieja, como CentOS/RHEL 6, eso será:

# service tor enable
# service tor start

8. Monitorea tus registros

Para confirmar que tu puente está corriendo sin problemas, deberías ver algo como esto (usualmente en /var/log/tor/log o /var/log/syslog):

[notice] Your Tor server's identity key fingerprint is '<NICKNAME> <FINGERPRINT>'
[notice] Your Tor bridge's hashed identity key fingerprint is '<NICKNAME> <HASHED FINGERPRINT>'
[notice] Registered server transport 'obfs4' at '[::]:46396'
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done
[notice] Now checking whether ORPort <redacted>:3818 is reachable... (this may take up to 20 minutes -- look for log messages indicating success)
[notice] Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.

9. Notas Finales

Si estás teniendo problemas para configurar tu puente, dale un vistazo a nuestra sección de ayuda. Si tu puente ahora se está ejecutando, comprueba las notas postinstalación.