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 epel-release

To install the tor package on CentOS/RHEL, you need to enable the use of the EPEL Repository first. To do so, you must install the epel-release package:

# yum install epel-release

Recent versions of CentOS/RHEL are using dnf instead of yum:

# dnf install epel-release

If you are on a recent version that uses dnf, please keep using it for the following steps where yum is called on this setup guide.

3. Configure Tor Project's Repository

Configuring the Tor Project's Repository for CentOS/RHEL consists basically on setting up /etc/yum.repos.d/Tor.repo with the following content:

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

Once you are set with EPEL and the Tor repositories, you are now able to install the package:

# yum install tor

Please note that when you are installing the first package from the EPEL repository you will be asked about verifying the EPEL's GPG signing key. Please ensure the key matches with the one available on the Fedora Project website. This will also happens when installing packages from Tor's repository for the first time - again you must ensure the key matches.

5. Build obfs4proxy and move it into place.

در نسخه های خیلی قدیمی از گیت go get کار نخواهد کرد، بنابراین اگر این مشکل را دریافت می کنید سعی کنید یک نسخه جدیدتر از گیت را استفاده کنید.

Install the golang package and other dependencies:

# yum install git golang policycoreutils-python-utils

Now build the binary, and move it to a proper directory:

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. Edit your Tor config file, usually located at /etc/tor/torrc and replace its content with:

RunAsDaemon 1
BridgeRelay 1

#  "TODO1" را با درگاه تور انتخابی خود جایگزین کنید. این باید به صورت خارجی
# قابل دسترس باشد. از استفاده از درگاه 9001 اجتناب کنید چون معمولاً با تور
# , مرتبط است و سانسور کنندگان اینترنت را برای این درگاه اسکن می کنند.
ORPort TODO1

ServerTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy

# "TODO2" را با درگاه obfs4 انتخابی خود جایگزین کنید. این درگاه باید
# از خارج قابل دسترس باشد و از درگاه مشخص شده برای ORPort باید تفاوت داشته باشد.
# از درگاه 9001 اجتناب کنید چون به صورت رایج با
# تور مرتبط است و سانسور کنندگان ممکن است اینترنت را برای این درگاه اسکن کنند.
ServerTransportListenAddr obfs4 0.0.0.0:TODO2

# درگاه ارتباط محلی بین تور و obfs4. همیشه این را روی "auto" تنظیم کنید.
#  "Ext" به معنای "تعمیم یافته" است نه "خارجی". یک شماره درگاه خاص
# را مشخص نکنید یا روی 0.0.0.0 شنود نکنید.
ExtORPort auto

# نشانی ایمیل خود را با "<address@email.com>" تغییر دهید تا بتوانیم در صورت نیاز با شما ارتباط برقرار کنیم
# پل شما مشکلاتی دارد. این انتخابی می باشد ولی توصیه می شود.
اطلاعات مخاطب <address@email.com>

# یک نام مستعار برای پل خود انتخاب کنید. این به اختیار شما می باشد.
Nickname PickANickname

فراموش نکنید تا گزینه های ORPort, ServerTransportListenAddr, ContactInfo, و Nickname را تغییر دهید.

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

7. Restart 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]

Recent versions os CentOS/RHEL which ship with systemd:

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

Should you use an older release like CentOS/RHEL 6, that will be:

# service tor enable
# service tor start

8. Monitor your logs

برای تایید اینکه پل شما بدون هیچ مشکلی اجرا می شود، باید چیزی شبیه به این ببینید (معمولاً‌ در /var/log/tor/log یا /var/log/syslog):

[اعلان] اثر انگشت کلید هویت سرور تور شما '<NICKNAME><FINGERPRINT>' می باشد
[اعلان] اثرانگشت کلید هویت هش شده پل تور شما '<NICKNAME><HASHED FINGERPRINT>' می باشد
[اعلان] انتقال سرور ثبت شده 'obfs4' در '[::]:46396'
[اعلان] تور با موفقیت یک زنجیره را باز کرده است. به نظر می آید که عملکرد کلاینت مشکلی ندارد.
[اعلان] بوت استرپ 100%: تمام
[اعلان] بررسی قابل دسترس بودن <redacted>:3818 ORPORT... (این ممکن است تا 20 دقیقه طول بکشد -- به دنبال پیام های لاگ که نشان می دهند عملیات موفق بوده باشید)
[اعلان] خود آزمایی نشان می دهد که ORPort از بیرون قابل دسترس است. عالی.انتشار توصیف‌گر سرور.

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