1. Enable Automatic Software Updates
One of the most important things to keep your relay secure is to install security updates timely and ideally automatically so you can not forget about it.
Follow the instructions to enable automatic software updates for your operating system.
2. Install tor
To install the tor
package on Arch Linux, please run:
# pacman -Syu tor
3. Install a Pluggable Transport
We are opting here to install and use obfs4
as pluggable transport, so we are going to install obfs4proxy
.
Sadly there's no package available on Arch Linux's official repositories to install it, so we must either build it from source, or use the AUR (ArchLinux User Repository).
Should you opted to use AUR, once makepkg
must not run as root, here is how obfs4proxy
can be installed on Arch Linux using an unprivileged user account with sudo
permissions:
$ sudo pacman -Syu git
$ git clone https://aur.archlinux.org/obfs4proxy
$ cd obfs4proxy
$ makepkg -irs
DISCLAIMER: AUR packages are user produced content. Any use of the provided files is at your own risk.
For more information on installing or building obfs4proxy
from source, please refer to its official documentation.
4. Edit your Tor config file, usually located at /etc/tor/torrc
and replace its content with:
BridgeRelay 1
DataDirectory /var/lib/tor
User tor
# Replace "TODO1" with a Tor port of your choice. This port must be externally
# reachable. Avoid port 9001 because it's commonly associated with Tor and
# censors may be scanning the Internet for this port.
ORPort TODO1
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
# Replace "TODO2" with an obfs4 port of your choice. This port must be
# externally reachable and must be different from the one specified for ORPort.
# Avoid port 9001 because it's commonly associated with
# Tor and censors may be scanning the Internet for this port.
ServerTransportListenAddr obfs4 0.0.0.0:TODO2
# Local communication port between Tor and obfs4. Always set this to "auto".
# "Ext" means "extended", not "external". Don't try to set a specific port
# number, nor listen on 0.0.0.0.
ExtORPort auto
# Replace "<address@email.com>" with your email address so we can contact you if
# there are problems with your bridge. This is optional but encouraged.
ContactInfo <address@email.com>
# Pick a nickname that you like for your bridge. This is optional.
Nickname PickANickname
Don't forget to change the ORPort
, ServerTransportListenAddr
, ContactInfo
, and Nickname
options.
- If you decide to use a fixed obfs4 port smaller than 1024 (for example 80 or 443), you will need to give obfs4
CAP_NET_BIND_SERVICE
capabilities to bind the port with a non-root user:
sudo setcap cap_net_bind_service=+ep /usr/bin/obfs4proxy
To work around systemd hardening, you will also need to set NoNewPrivileges=no
in /usr/lib/systemd/system/tor.service
and then run systemctl daemon-reload
. For more details, see ticket 18356.
- Note that both Tor's OR port and its obfs4 port must be reachable. If your bridge is behind a firewall or NAT, make sure to open both ports. You can use our reachability test to see if your obfs4 port is reachable from the Internet.
5. Enable and Start tor
# systemctl enable --now tor
... or restart it if it was running already, so configurations take effect
# systemctl restart tor
6. Final Notes
If you are having trouble setting up your bridge, have a look at our help section.
If your bridge is now running, check out the post-install notes.