این راهنما به شما نشان می‌دهد که چگونه یک سرویس Onion را برای وب‌سایت خود تنظیم کنید. برای جزئیات فنی شیوهٔ عملکرد پروتکل سرویس Onion، صفحه پروتکل سرویس Onion ما را ببینید.

گام ۰: دریافت یک نسخهٔ کارآمد Tor

به‌عنوان بخشی از این راهنما، فرض می‌کنیم که یک Tor درحال کار روی دستگاه خود دارید. ‌برای تنظیم Tor، لطفاً راهنمای نصب Tor‏ را دنبال کنید. برای کار‌کردن این راهنما، Tor باید به‌درستی فعال و اجرا شود. همچنین باید بدانید که فایل‌های پیکربندی Tor کجا هستند.

گام ۱: یک سرور وب راه بیندازید

به‌عنوان اولین گام، باید یک سرور وب به‌صورت محلی مانند Nginx، Apache یا سرور وب مورد علاقه خود تنظیم کنید. تنظیم‌کردن یک سرور وب می‌تواند پیچیده باشد. اگر گیر کرده‌اید یا می‌خواهید کارهای بیشتری انجام دهید، دوستی پیدا کنید که بتواند به شما کمک کند یا به فهرست پست‌سپاری tor-onions ما پیوسته تا با اپراتورهای دیگر صحبت کنید.

برای مثال، شیوهٔ تنظیم سایت Onion با Nginx و Apache در دبیان را پوشش خواهیم داد. توصیه می‌کنیم برای سرویس Onion خود یک سرور وب جداگانه جدید نصب کنید، زیرا حتی اگر قبلاً یکی را نصب کرده‌اید، ممکن است از آن برای یک وب‌سایت معمولی استفاده کنید (یا بخواهید بعدا از آن استفاده کنید).

در این صفحه، دستورها برای مدیریت سرور وب مبتنی بر سیستم‌عامل‌های شبیه به دبیان است و ممکن است با سیستم‌های دیگر متفاوت باشد. مستندات سرور وب و سیستم‌عامل خود را بررسی کنید.

Apache

Apache در مخزن اصلی چندین توزیع لینوکس و *BSD موجود است. برای نصب بسته apache2:

$ sudo apt install apache2

Nginx

Nginx در مخزن اصلی چندین توزیع لینوکس و *BSD موجود است. برای نصب بسته nginx:

$ sudo apt install nginx

به‌طور پیش‌فرض، سرور وب در پایان نصب روی localhost:80 اجرا می‌شود. اگر پیغام خطایی دریافت کردید، مشکلی رخ داده است و تا زمانی که متوجه علت عدم کارکرد آن نشده‌اید، نمی‌توانید ادامه دهید.

هنگامی که سرور وب شما راه‌اندازی شد، مطمئن شوید که کار می‌کند: مرورگر خود را باز کرده و به http://localhost/‎ بروید. Then try putting a file in the main HTML directory, and make sure it shows up when you access the site.

گام ۲: سرویس Onion Tor خود را پیکربندی کنید

مرحله بعدی باز‌کردن فایل پیکربندی Tor (torrc) و انجام تنظیمات مناسب برای راه اندازی سرویس Onion است. بسته به تنظیم و سیستم‌عامل شما، فایل پیکربندی Tor شما می‌تواند در یک جای متفاوت باشد یا به شکلی دیگر به نظر برسد.

شما باید دو سطر زیر را به فایل torrc خود اضافه کنید:

 HiddenServiceDir /var/lib/tor/my_website/
 HiddenServicePort 80 127.0.0.1:80

سطر HiddenServiceDir شاخه‌ای را مشخص می‌کند که باید حاوی اطلاعات و کلیدهای رمزنگاری برای سرویس Onion شما باشد. لازم است سطر HiddenServiceDir را تغییر داده تا به یک شاخهٔ حقیقی اشاره داشته باشد که توسط کاربری که Tor را اجرا می‌کند قابل خواندن/نوشتن باشد.

سطر HiddenServicePort یک virtual port را مشخص می‌کند (یعنی درگاه افرادی که از سرویس Onion شما بازدید می‌کنند استفاده خواهند شد)، و در مورد بالا می‌گوید که هر ترافیک ورودی به درگاه 80 سرویس Onion شما باید به 127.0.0.1:80 هدایت شود. (که سرور وب از گام ۱ درحال گوش‌دادن است).

نکته: یک روش خوب برای جلوگیری از نشت سرویس Onion به شبکه محلی، اجرای سرویس Onion از طریق سوکت‌های Unix به‌جای سوکت TCP است. شما باید دو سطر زیر را به فایل torrc خود اضافه کنید:

HiddenServiceDir /var/lib/tor/my-website/
HiddenServicePort 80 unix:/var/run/tor/my-website.sock

گام ۳: Tor را مجدداً راه‌اندازی کرده و مطمئن شوید که کار می‌کند

حالا torrc خود را ذخیره کرده و Tor را مجدداً راه‌اندازی کنید.

$ sudo systemctl restart tor

اگر Tor دوباره شروع‌به‌کار کند، بسیار عالی. در غیر اینصورت، اِشکالی وجود دارد. ابتدا به فایل‌های رویدادنگار برای پیدا‌کردن یک سرنخ نگاه کنید. (Tor) برخی از هشدارها یا پیام‌های خطا را چاپ خواهد کرد. این باید به شما ایده‌ای آنچه اشتباه رخ داده، بدهد. به‌طور معمول اشتباهات تایپی در torrc یا مجوزهای شاخهٔ اشتباه وجود دارد (اگر نمی‌دانید چگونه فایل رویدادنگار خود را به‌کار انداخته یا پیدا کنید، به مدخل پرسش‌های متداول رویدادنگاری نگاه بیندازید.)

هنگامی که Tor شروع‌به‌کار می‌کند، به‌طور خودکار HiddenServiceDir که شما مشخص کرده‌اید (در صورت لزوم) را ایجاد می‌کند. مطمئن شوید که این مورد است.

گام ۴: کارکردن سرویس Onion خود را بیازمایید

اکنون برای دریافت نشانی سرویس Onion خود، به شاخه HiddenServiceDir رفته و فایلی به نام hostname را پیدا کنید. فایل hostname در فهرست پیکربندی سرویس Onion شما حاوی نام میزبان برای سرویس جدید Onion v3 شما است. فایل‌های دیگر کلیدهای سرویس Onion شما هستند، بنابراین نگه داشتتن خصوصی آن‌ها امری ضروری است. اگر کلیدهای شما فاش شود، افراد دیگر می‌توانند سرویس Onion شما را جعل کرده، آن را لورفته بپندارند و بازدید از آن را بی‌فایده و خطرناک کنند.

Now you can connect to your Onion Service using Tor Browser, and you should get the HTML page you set up back in Step 1. اگر کار نکرد، در رویدادنگار‌های خود به‌دنبال سرنخ باشید و آنقدر با آن سر و کله بزنید تا بالاخره کار کند.

مهم است که توجه داشته باشید که سرویس Onion پیکربندی شده به این شکل برای هر کسی که نشانی را می‌شناسد یا کشف می‌کند قابل خواندن است. می‌توانید کاری کنید که سرویس Onion نیاز به اصالت‌سنجی داشته باشد و فقط کاربرانی که دارای کلید خصوصی هستند به این سرویس دسترسی خواهند داشت. دربارهٔ اسناد صدور مجوز سرویس‌گیرنده‪‫‏ بیشتر بخوانید.

(اختیاری) گام ۵: اجرای چندین سرویس Onion

اگر می‌خواهید چندین درگاه مجازی را برای یک سرویس Onion منفرد هدایت کنید، فقط خطوط HiddenServicePort بیشتری اضافه کنید. اگر می‌خواهید چندین سرویس Onion را از یک سرویس‌گیرندهٔ Tor اجرا کنید، کافی است یک سطر HiddenServiceDir دیگر اضافه کنید. تمام خطوط HiddenServicePort زیر به همین سطر HiddenServiceDir اشاره دارد، تا زمانی که یک سطر دیگر HiddenServiceDir اضافه کنید:

 HiddenServiceDir /var/lib/tor/onion_service/
 HiddenServicePort 80 127.0.0.1:80

 HiddenServiceDir /var/lib/tor/other_onion_service/
 HiddenServicePort 6667 127.0.0.1:6667
 HiddenServicePort 22 127.0.0.1:22

اگر چندین سایت Onion را روی یک سرور وب اجرا می‌کنید، به یاد داشته باشید که فایل میزبان مجازی سرور وب خود را ویرایش کرده و نشانی Onion را برای هر وب‌سایت اضافه کنید. برای مثال، در Nginx و در استفاده از Tor با سوکت‌های Unix، پیکربندی به این صورت خواهد بود:

server {
        listen unix:/var/run/tor/my-website.sock;
        server_name <your-onion-address>.onion;
        access_log /var/log/nginx/my-website.log;
        index index.html;
        root /path/to/htdocs;
}

Or in Apache with Tor service listening on port 80:

     <VirtualHost *:80>
       ServerName <your-onion-address.onion>
       DocumentRoot /path/to/htdocs
       ErrorLog ${APACHE_LOG_DIR}/my-website.log
     </VirtualHost>

گام ۶: توصیه امنیتی و نکات بیشتر

The default version of Onion Services is version 3 and its address is 56 characters long, without the http:// and .onion parts. Onion services version 2 is deprecated and is no longer supported since the 0.4.6.1-alpha Tor release, in 2021. لطفاً برای اطلاعات بیشتر، جدول زمانی منسوخ‌شدن نسخهٔ سرویس Onion، پست وبلاگ را بخوانید.

برخی از اپراتورهای سایت Onion ممکن است نخواهند مکان سرویس Onion خود را فاش کنند. بنابراین، باید سرور وب خود را به گونه‌ای پیکربندی کرده که هیچ اطلاعاتی در مورد شما، رایانه و یا مکان شما ارائه نکند. این کار آسانی نیست، و این منابع به چگونگی امکان‌پذیر‌کردن آن کمک می‌کنند:

در نهایت، اگر قصد دارید سرویس خود را برای مدت طولانی در دسترس نگه دارید، ممکن است بخواهید یک نسخهٔ پشتیبان از فایل private_key در جایی تهیه کنید.

اکنون که سایت Onion کار می‌کند، ممکن است بخواهید Onion-Location‏ را مستقر کنید یا از ابزارهایی مانند Docker، Heroku، Terraform، Ansible یا stem برای خودکارسازی مدیریت سرویس‌های Onion خود استفاده کنید. اگر یک وب‌سایت ایستا دارید، اما هرگز Nginx یا Apache را نصب نکرده‌اید، پروژه دیگری برای امتحان کردن، OnionShare است، که در آن اجرای سایت Onion آسان‌تر خواهد بود: هدایت‌شده توسط یک رابط گرافیکی و با حداقل پیکربندی.