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. Bootstrap pkg

This guide assumes we have already a base installation of FreeBSD running, and only the base system. That means we do not have any packages installed, or even the pkg packages manager itself (there's no sudo available - we are running commands as root).

برای بوت استرپ و نصب pkg ما باید دستور زیر را اجرا کنیم:

# pkg bootstrap
# pkg update -f

برای دنبال کردن به روز رسانی ها به شیوه ای سریع تر پیشنهاد ما این است که شاخه 'quaterly' استفاده شده توسط pkg را به شاخه 'latest' تغییر دهید.

یک قدم اضافه این است که استفاده از HTTPS را برای واکشی بسته ها و به روز رسانی ها ترجیح دهیم - ما در اینجا نیاز به یم بسته اضافی برای کمک داریم (ca_root_nss).

نصب بسته ca_root_nss:

# pkg install ca_root_nss

We are keeping the original setting used by pkg but setting a new one that will override it. So we set up a new directory, and then create a configuration file to override what we need. This configuration file will be /usr/local/etc/pkg/repos/FreeBSD.conf.

ایجاد دایرکتوری جدید:

# mkdir -p /usr/local/etc/pkg/repos

فایل پیکربندی جدید /usr/local/etc/pkg/repos/FreeBSD.conf به این شکل باید باشد:

FreeBSD: {
  url: pkg+https://pkg.freebsd.org/${ABI}/latest
}

پس از پیاده کردن تمام این تغییرات، لیست بسته ها را مجدد به روز رسانی می کنیم و سعی می کنیم بررسی کنیم که آیا یک به روز رسانی جدید وجود دارد یا نه:

# pkg update -f
# pkg upgrade -y -f

3. Install Tor

You can choose to install the stable version (recommended):

# pkg install tor

Or install an alpha release:

# pkg install tor-devel

4. Install obfs4proxy

# pkg install obfs4proxy-tor

5. Edit your Tor config file, usually located at /usr/local/etc/tor 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

Log notice file /var/log/tor/notices.log

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

  • توجه داشته باشید که هم درگاه OR تور و درگاه obfs4 آن باید قابل دسترس باشند. اگر پل شما پشت یک دیوار آتش یا ترجمه نشانی شبکه قرار گرفته، مطمئن شوید که هر دو را باز کرده اید. می توانید از آزمون دسترس‌پذیری ما برای بررسی قابل دسترس بودن درگاه obfs4 از اینترنت استفاده کنید.

  • Are you using FreeBSD's firewall with a "default deny" policy? If so, make sure that your obfs4proxy can talk to your Tor process over the loopback interface. Don't forget to whitelist Tor's ExtORPort.

6. Ensure that the random_id sysctl setting is enabled

# echo "net.inet.ip.random_id=1" >> /etc/sysctl.conf
# sysctl net.inet.ip.random_id=1

7. Start the tor daemon and make sure it starts at boot

# sysrc tor_setuid=YES
# sysrc tor_enable=YES
# service tor start

8. Monitor your logs

برای تایید این موضوع که پل شما بدون هیچ مشکلی اجرا می شود، باید چیزی شبیه به این در /var/log/tor/notices.log ببینید:

[اعلان] اثر انگشت کلید هویت سرور تور شما '<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.