OffshoreVps
حریم خصوصی و قانون20 اکتبر 20268 دقیقه مطالعهنوشته‌ی تیم OffshoreVps

میزبانی یک سایت .onion: سرویس پنهان Tor روی VPS

یک وب‌سایت را به‌صورت سرویس onion در Tor اجرا کنید: Tor را نصب کنید، Nginx را به localhost متصل کنید، آدرس .onion خود را بخوانید، احراز هویت کلاینت را اضافه کنید و از نشت‌هایی که هویتتان را لو می‌دهند دوری کنید.

یک سرویس onion در Tor به افراد اجازه می‌دهد از طریق شبکه Tor به سایت شما برسند، بدون آنکه هیچ‌یک از دو طرف IP دیگری را بفهمد. سرور به سمت Tor تماس می‌گیرد، بنابراین اصلاً به پورت ورودی باز نیاز ندارد. این راهنما یکی را روی یک VPS اوبونتو راه‌اندازی می‌کند، با Nginx که یک سایت کوچک را ارائه می‌دهد.

پنجره‌ی ترمینال روی یک VPS که دستورهای انتشار سرویس onion در Tor را نشان می‌دهد، با «sudo apt update» شروع می‌شود
نوع دستورهایی که در این راهنما روی سرور خود اجرا می‌کنید.

سرویس onion چه چیزی به شما می‌دهد

  • یک آدرس .onion که از یک کلید مشتق می‌شود، بنابراین خود-احراز‌هویت است و به مرجع صدور گواهی نیاز ندارد.
  • رمزنگاری سرتاسری میان بازدیدکننده و سرور شما، درون Tor.
  • بدون نیاز به افشای آدرس IP عمومی سرور برای بازدیدکنندگان.

این کار محتوای سایت شما را قانونی نمی‌کند و اشتباهاتی را که جای دیگری مرتکب می‌شوید، مثل یک دامنه clear-web که به همان دستگاه اشاره می‌کند، پنهان نمی‌کند.

گام ۱: نصب Tor و Nginx

sudo apt update
sudo apt install -y tor nginx
sudo systemctl enable --now tor

گام ۲: اتصال Nginx فقط به localhost

وب‌سرور نباید روی رابط عمومی پاسخ بدهد، وگرنه IP روی clear-web و سایت onion قابل پیوند می‌شوند. پیکربندی سایت را ویرایش کنید تا روی loopback گوش دهد.

server {
    listen 127.0.0.1:8080;
    server_name _;
    root /var/www/onion;
    index index.html;
    server_tokens off;
}
sudo mkdir -p /var/www/onion
echo '<h1>Hello from onion space</h1>' | sudo tee /var/www/onion/index.html
sudo nginx -t && sudo systemctl reload nginx
گام‌های این راهنما به ترتیب: ۱. سرویس onion چه چیزی به شما می‌دهد؛ ۲. نصب Tor و Nginx؛ ۳. اتصال Nginx فقط به localhost؛ ۴. تعریف سرویس پنهان؛ ۵. احراز هویت اختیاری کلاینت؛ ۶. بستن نشت‌های رایج
گام‌های این راهنما به ترتیب.

گام ۳: تعریف hidden service

این خطوط را به /etc/tor/torrc اضافه کنید:

HiddenServiceDir /var/lib/tor/my_site/
HiddenServiceVersion 3
HiddenServicePort 80 127.0.0.1:8080
sudo systemctl restart tor
sudo cat /var/lib/tor/my_site/hostname

آخرین دستور آدرس .onion با 56 نویسه شما را چاپ می‌کند. آن را در Tor Browser باز کنید تا تست شود. از پوشه /var/lib/tor/my_site/ پشتیبان بگیرید: کلید درون آن همان آدرس شماست و از دست دادنش یعنی آدرس جدید.

گام ۴: احراز هویت اختیاری کلاینت

برای یک سرویس خصوصی، کلیدی اضافه کنید که فقط بازدیدکنندگان تأییدشده داشته باشند. فایل /var/lib/tor/my_site/authorized_clients/alice.auth را با یک خط به شکل descriptor:x25519:PUBLIC_KEY بسازید، سپس Tor را reload کنید. بازدیدکنندگانی که کلید خصوصی متناظر را ندارند حتی نمی‌توانند ببینند که سرویس وجود دارد.

گام ۵: بستن نشت‌های رایج

  • هرگز به دارایی‌ها، فونت‌ها یا ابزار تحلیل clear-web از صفحات خود ارجاع ندهید.
  • صفحات خطا و هدرها را عمومی کنید و server_tokens off را نگه دارید.
  • ساعت سرور را دقیق نگه دارید؛ Tor به آن نیاز دارد.
  • همه‌چیز را به‌جز SSH با فایروال ببندید: sudo ufw default deny incoming، چون Tor به پورت ورودی نیاز ندارد.
  • روی همان میزبان سایت clear-web اجرا نکنید مگر اینکه آن‌ها را کاملاً از هم جدا کرده باشید.

پیش از انتشار هر چیزی عادت‌های OpSec سرور را بخوانید و روی سرور جدید از چک‌لیست مقاوم‌سازی استفاده کنید.