1. Install Tor and dependencies

  • CentOS / RHEL:

# yum install epel-release -y

Then add the following to the /etc/yum.repos.d/tor.repo file.

[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

And then install the following packages.

# yum install git golang tor policycoreutils-python-utils

  • OpenSUSE:

# zypper install tor go git

2. Build obfs4proxy and move it into place.

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.

  • CentOS / RHEL:

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

  • OpenSUSE:

export GOPATH='mktemp -d'

go get gitlab.com/yawning/obfs4.git/obfs4proxy

sudo cp $GOPATH/bin/obfs4proxy /usr/local/bin/

3. Edit your Tor config file, usually located at /etc/tor/torrc and replace its content with:

  • CentOS / RHEL / OpenSUSE:
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 es alcanzable desde el Internet.

4. Restart Tor

  • CentOS / RHEL:

sudo semanage port -a -t tor_port_t -p tcp [puerto OR, establecido con anterioridad en TODO1]

sudo semanage port -a -t tor_port_t -p tcp [puerto obfs4, establecido con anterioridad en TODO2]

  • CentOS / RHEL / OpenSUSE:

sudo systemctl restart tor

5. Monitor your logs (usually in your syslog)

Para confirmar que tu puente está corriendo sin problemas, debieras ver algo como esto:

[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.

6. 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.