راهنمای کامل راهاندازی Tor exit node و مدیریت آن
برای اجرای موفق Tor exit node باید با چالشهای انتخاب دیتاسنتر، تنظیم ContactInfo، پیکربندی reverse DNS و پاسخگویی به ایمیلهای abuse آشنا باشید. این راهنمای عملی مسیر را نشان میدهد.
کارکرد یک Tor exit node و هویت شما در این نقش
یک Tor exit node آخرین رله در یک مدار است: ماشینی که اتصال به مقصد را برقرار میکند، بنابراین مقصد آدرس سرور شما را ثبت میکند و نه آدرس کاربر را. تمام تصمیمات دیگر در این راهنما از همین یک واقعیت نشأت میگیرند. این آدرس به عنوان منبع تمام ترافیکی که از آن عبور میکند شناخته میشود، بنابراین باید آدرسی باشد که هیچ کار دیگری انجام نمیدهد و در دیتاسنتری میزبانی شود که با عبور این ترافیک موافقت کرده است.
اجرای یک exit node دقیقاً نقطه مقابل پنهانکاری است. این رله در یک دایرکتوری عمومی فهرست میشود که هر کسی میتواند آن را دانلود کند. آدرس تماس شما در آن دایرکتوری تحت ContactInfo قرار میگیرد، نام reverse DNS شما اعلام میکند که این ماشین چیست، پورت 80 صفحهای را ارائه میدهد که همین موضوع را بیان میکند و شما شخصاً و با نام خودتان به ایمیلهای سوءاستفاده (abuse) پاسخ میدهید. هیچکس در این سیستم به اندازه یک اپراتور exit node قابل شناسایی نیست. این ماهیت کار است و به همین دلیل است که این سیستم کار میکند.
ما این رلهها را اجرا میکنیم. SSD Nodes به عنوان سهم خود در آزادی بیان، رلههای خروجی را در چندین کشور اداره میکند. ما آن ماشینها را از ارائهدهندگانی اجاره میکنیم که آگاهانه برای میزبانی ترافیک خروجی ثبتنام کردهاند و ما خودمان ارائهدهنده آن زیرساخت نیستیم. این کار عمدی است و بخش بعدی دلیل آن را توضیح میدهد.
جایی که یک exit relay به آن تعلق دارد و جایی که ندارد
یک exit relay نباید روی یک VPS (سرور مجازی خصوصی) با کاربری عمومی اجرا شود، و این شامل سرورهای ما نیز میشود. یک شبکه با کاربری عمومی، میزبان وبسایتها، ایمیلها، بکآپها و پنلهای مدیریتی برای هزاران مشتری غیرمرتبط روی آدرسهای مجاور است. ترافیک خروجی (exit traffic)، یکی از این آدرسها را وارد گزارشهای اسکن و لیستهای سیاه اسپم میکند و اثرات آن دامنگیر همسایهها میشود. ارائهدهندگانی که به خوبی میزبان exit relayها هستند، زیرساخت خود را برای این کار ساختهاند: فضای آدرسدهی اختصاصی برای این هدف، و یک واحد رسیدگی به سوءاستفاده (abuse desk) که از قبل میداند Tor چیست.
بنابراین، میزبانی که این راهنما را مینویسد به شما توصیه میکند که دستگاه را از جای دیگری تهیه کنید. این بخش مفید ماجراست. ما میدانیم ترافیک خروجی با یک آدرس چه میکند، زیرا به دیگران پول میدهیم تا ترافیک ما را حمل کنند؛ و به آنها پول میدهیم چون حمل صحیح این ترافیک، کسبوکاری متفاوت از فروش سرورهای عمومی است.
پروژه Tor همین موضوع را با صراحت بیشتری بیان میکند. صفحه انواع رلهها بیان میکند که exit relayها «بیشترین مواجهه قانونی و مسئولیت را در میان تمام رلهها دارند» و «شما نباید یک Tor exit relay را از خانه خود اجرا کنید». یک VPS با کاربری عمومی که پروژههای شخصی شما روی آن است، بسیار به «خانه» نزدیکتر از آن چیزی است که به نظر میرسد. این دستگاهی است که برای شما اهمیت دارد و روی آدرسی قرار دارد که میخواهید آن را پاک و معتبر نگه دارید.
اگر یک VPS معمولی دارید و میخواهید در این هفته به شبکه کمک کنید، یک non-exit relay یا یک bridge روی آن اجرا کنید. این یک جایزه تسلیبخش نیست. این کاری متفاوت با پروفایل ریسک متفاوت است و شبکه به هر دو نیاز دارد. یک non-exit relay هرگز اتصالی به مقصد باز نمیکند، بنابراین تقریباً هیچ شکایتی ایجاد نمیکند. راهنمای Tor درخواست میکند که حداقل 2 MByte/s (مگابایت بر ثانیه) در هر جهت پهنای باند داشته باشید تا ارزش لیست شدن را داشته باشد. یک bridge یک نقطه ورود لیستنشده برای کاربران در شبکههای سانسورشده است. این سرویس به اتصال 24/7 و یک پورت TCP (پروتکل کنترل انتقال) باز نیاز دارد که آن را به ارزشمندترین کاری تبدیل میکند که یک سرور کوچک میتواند انجام دهد. هر دوی اینها متعلق به سختافزاری هستند که از قبل دارید. یک exit relay چنین جایگاهی ندارد.
چگونه یک ارائهدهنده مناسب برای خروجی (Exit) پیدا کنیم؟
پیش از سفارش، بهصورت کتبی پرسوجو کنید و پاسخ را نزد خود نگه دارید. دستورالعملهای خروجی تور پیشنهاد میکنند که این کار را در دو مرحله انجام دهید: ابتدا بپرسید که آیا ارائهدهنده با میزبانی یک خروجی تور مشکلی دارد یا خیر، و سپس بپرسید که آیا یک آدرس یا محدوده اختصاصی برای آن در نظر میگیرند یا نه. پرسیدن هر دو مورد بهطور همزمان معمولاً منجر به پاسخ منفیِ خودکار میشود.
چهار پرسش زیر مشخص میکند که آیا ارائهدهنده واقعاً برای این کار آماده است یا خیر:
- آیا یک آدرس IP اختصاصی که هیچ سرویس دیگری روی آن میزبانی نمیشود به من اختصاص میدهید و آیا رکورد reverse DNS مورد نظر مرا تنظیم میکنید؟
- چه کسی ایمیلهای مربوط به سوءاستفاده (abuse) را دریافت میکند و آیا آنها را بدون ویرایش و با حفظ آدرس فرستنده برای من ارسال میکنید تا بتوانم مستقیماً به آنها پاسخ دهم؟
- در صورت دریافت اولین شکایت چه اتفاقی میافتد: آیا آن را برای من ارسال میکنید یا ابتدا آدرس را null-route کرده و سپس پیگیری میکنید؟
- چه تعداد خروجی در حال حاضر روی این شبکه فعال است؟ دستورالعملهای تور در این باره صریح هستند: «تجمع بیش از حد خروجیها در یک ISP دوست، کمکی به شبکه نمیکند».
پرسش آخر اهمیت بیشتری از آنچه به نظر میرسد دارد. بخشی از ارزش یک خروجی به موقعیت آن در شبکه بستگی دارد. یک خروجی جدید در شبکهای که هماکنون پنجاه خروجی دیگر دارد، ارزش کمتری نسبت به همان ماشین در یک شبکه جدید ایجاد میکند. Relay Search نشان میدهد که کدام شبکهها در حال حاضر خروجیها را میزبانی میکنند، بنابراین میتوانید پیش از نهایی کردن انتخاب، آن را بررسی کنید.
پاسخها را پیش از پرداخت دریافت کنید و ماشین را در یک حساب کاربری جداگانه خریداری کنید، نه اینکه آن را به حسابی که سایر سرورهایتان در آن قرار دارند اضافه کنید. امنیت میزبانی VPS عمدتاً به این بستگی دارد که چه چیزی را در کنار چه چیزی قرار میدهید، و این واضحترین مثال برای این قاعده است.
یک آدرس، یک وظیفه
آدرس خروجی نباید میزبان هیچ چیز دیگری باشد. نه وبسایت، نه ایمیل، نه VPN، نه داشبورد مانیتورینگ و نه میزبان واسط (jump host) برای SSH شخصی. این آدرس در لیستهای سیاه (blocklists) قرار خواهد گرفت و هر سرویس دیگری که روی آن اجرا شود، با مشکلاتی مواجه خواهد شد که عیبیابی آنها دشوار است. تکمنظوره بودن آدرس باعث میشود پاسخ شما به شکایات کوتاه و قاطع باشد: این آدرس فقط یک exit relay است و هیچ کاربری دیگری ندارد.
پیش از راهاندازی Tor، کارهای معمول را انجام دهید. از SSH مبتنی بر کلید استفاده کنید و ورود با رمز عبور را غیرفعال کنید. همچنین فایروالی تنظیم کنید که فقط اجازه دسترسی به پورتهای مورد نیاز را بدهد. ایمنسازی SSH روی VPS بخش اول و اصول اولیه فایروال ufw بخش دوم را پوشش میدهد. یک exit relay دقیقاً دو پورت را برای جهان باز میگذارد: ORPort که ترافیک Tor را منتقل میکند و پورت 80 برای صفحه اطلاعرسانی خروجی. تمام پورتهای دیگر باید بسته بمانند.
قابلیت unattended upgrades را فعال کنید، زیرا اجرای یک نسخه قدیمی از Tor روی exit relay، برای تمام کاربرانی که ترافیکشان از آن عبور میکند، مشکلساز است.
sudo apt update && sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgradesلاگگیری (logging) را افزایش ندهید. ثبت متن ساده (plaintext) ترافیکی که از یک exit relay خارج میشود، از نظر فنی ساده است اما این تنها کاری است که یک اپراتور هرگز نباید انجام دهد. پرسشهای متداول حقوقی EFF درباره Tor به اپراتورها توصیه میکند که چنین کاری نکنند، زیرا قوانین شنود در ایالات متحده و قوانین مشابه در سایر نقاط جهان میتواند مسئولیتهای قانونی سنگینی برای بررسی این ترافیک ایجاد کند. تنظیمات پیشفرض Tor برای سطح لاگگیری (notice-level) را حفظ کنید و فراتر از آن نروید.
نصب Tor از مخزن رسمی Tor Project
بستههای موجود در توزیعها معمولاً قدیمی هستند. از مخزن رسمی Tor Project استفاده کنید تا اصلاحات امنیتی دقیقاً در روز انتشار دریافت شوند. تا اوت 2026، سری پایدار فعلی 0.4.9 است.
sudo apt update
sudo apt install -y apt-transport-https gnupg wget
lsb_release -csفایل /etc/apt/sources.list.d/tor.sources را بنویسید و noble را با نام رمز (codename) که lsb_release -cs چاپ کرده است، جایگزین کنید:
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpgکلید امضا را اضافه کرده و سپس نصب را انجام دهید:
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null
sudo apt update
sudo apt install -y tor deb.torproject.org-keyring
tor --versionبسته deb.torproject.org-keyring این کلید را بهطور خودکار بهروز نگه میدارد تا مخزن در روز تغییر کلید از کار نیفتد. اگر apt update گزارش داد که یک مخزن دو بار پیکربندی شده است، به این معنی است که هم یک فایل .list و هم یک فایل .sources آن را نامگذاری کردهاند؛ خطای منبع تکراری deb822 نحوه رفع این مشکل را توضیح میدهد.
DNS: خروجی شما نامها را برای تمام کسانی که از آن استفاده میکنند، ترجمه میکند
یک خروجی (exit)، ترجمه نامها (name lookup) را برای تمام مدارهایی که از طریق آن خارج میشوند انجام میدهد؛ بنابراین resolver آن، جریانی از نامهای متعلق به افراد دیگر را مشاهده میکند. اگر این درخواستها را به سمت یک resolver عمومی بزرگ هدایت کنید، کل این جریان را به یک شرکت واحد تحویل دادهاید؛ این همان تمرکزگرایی است که Tor از اپراتورهای خروجی میخواهد از آن اجتناب کنند. در عوض، یک resolver معتبر (validating) و دارای کش (caching) روی همان سرور اجرا کنید.
sudo apt install -y unbound bind9-dnsutils
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf
sudo chattr +i /etc/resolv.conf
sudo systemctl enable --now unboundchattr +i فایل را غیرقابل تغییر (immutable) میکند، زیرا کلاینتهای DHCP (پروتکل پیکربندی پویای میزبان) و resolvconf فایل /etc/resolv.conf را طبق زمانبندی خود بازنویسی میکنند. بدون این کار، یک reboot میتواند تنظیمات ترجمه نام شما را به resolver ارائهدهنده بازگرداند و هیچ هشداری نیز در این مورد دریافت نخواهید کرد. دستورالعملهای Tor برای Debian و Ubuntu همچنین قابلیت query name minimisation را فعال میکنند که به هر سرور نام، فقط بخشی از نام را میفرستد که واقعاً به آن نیاز دارد:
server:
qname-minimisation: yesآن را در فایلی تحت /etc/unbound/unbound.conf.d/ قرار دهید و سپس تأیید کنید که resolver پاسخ میدهد:
sudo systemctl restart unbound
dig +short example.com @127.0.0.1وجود یک آدرس در پاسخ به این معنی است که unbound کار میکند. اگر unbound با خطای address already in use شروع نشد، یعنی یک پردازش دیگر پورت 53 را اشغال کرده است: دستور sudo ss -lntup | grep :53 را اجرا کنید و ببینید چه چیزی مالک آن است. در Ubuntu، سرویس systemd-resolved روی 127.0.0.53 گوش میدهد، بنابراین با unbound روی 127.0.0.1 تداخلی ندارد.
فایل torrc برای یک exit relay
بسته Debian فایل /etc/tor/torrc را میخواند. این تمام پیکربندی مربوط به خروجی (exit) است.
Nickname exampleExit01
ORPort 443
ExitRelay 1
SocksPort 0
ContactInfo email:tor[]example.org abuse:abuse[]example.org url:https://example.org ciissversion:3
ReducedExitPolicy 1
Log notice syslogهر خط در اینجا حیاتی است، بنابراین آنها را یکییکی بررسی کنید.
ORPort 443 جایی است که سایر relayها به شما متصل میشوند. پورت 443 از شبکههای محدودی که پورتهای غیرمعمول را مسدود میکنند عبور میکند، بنابراین relay شما نسبت به پورت سنتی 9001 توسط افراد بیشتری قابل دسترسی است. شما فقط در صورتی میتوانید از 443 استفاده کنید که هیچ سرویس دیگری روی این سرور به آن نیاز نداشته باشد؛ این خود دلیلی دیگر برای استفاده از یک آدرس اختصاصی است.
SocksPort 0 پروکسی SOCKS محلی را غیرفعال میکند. یک relay هرگز به آن نیاز ندارد و باز بودن پورت SOCKS روی یک آدرس عمومی، به معنای ایجاد یک open proxy است که ظرف چند ساعت شناسایی و مورد سوءاستفاده قرار میگیرد.
ExitRelay 1 سوئیچی است که این ماشین را به یک exit تبدیل میکند. آن را بهطور صریح تنظیم کنید و به مقادیر پیشفرض تکیه نکنید تا فایل پیکربندی بهوضوح عملکرد ماشین را بیان کند.
ContactInfo در دایرکتوری عمومی منتشر میشود تا هر کسی بتواند آن را بخواند. آن را با فرمت مشخصات اشتراکگذاری اطلاعات تماس بنویسید که ابزارهای شبکه آن را تجزیه میکنند، و ciissversion:3 را در آن حفظ کنید. استفاده از [] بهجای @، قراردادی است که این مشخصات برای کند کردن کار اسکریپتهای جمعآوری آدرس (scrapers) استفاده میکند. از صندوق پستیای استفاده کنید که هر روز آن را چک میکنید، زیرا ایمیلهای مربوط به سوءاستفاده به این آدرس ارسال میشوند.
اگر سرور دارای IPv6 فعال است، یک IPv6 ORPort اضافه کنید و خروجی IPv6 را فعال نمایید. اگر سرور IPv6 ندارد، هر دو را حذف کنید، زیرا relayای که آدرسی را تبلیغ میکند اما عملاً نمیتواند از آن استفاده کند، در تست دسترسیپذیری خود شکست میخورد.
ORPort [2001:db8::1]:443
IPv6Exit 1سیاست خروج: پورتهای مجاز
سیاست خروج (exit policy) فهرستی از مقاصدی است که رله شما اجازه اتصال به آنها را دارد. Tor این فهرست را از بالا به پایین میخواند و اولین قاعدهای که با درخواست مطابقت داشته باشد، اعمال میشود. ReducedExitPolicy 1 مجموعهای منتخب از حدود 70 پورت را شامل میشود که وب، ارسال ایمیل، چت و git را پوشش میدهد و پورتهایی که بیشترین شکایات را ایجاد میکنند، از آن حذف شدهاند. این گزینه نقطه شروع مناسبی برای اولین رله خروجی شماست.
دو قاعده وجود دارد که دانستن نام آنها ضروری است. ExitPolicyRejectPrivate بهصورت پیشفرض فعال است و مانع از اتصال رله خروجی به محدودههای آدرس خصوصی و آدرسهای خودِ رله میشود؛ این کار باعث میشود رله شما به سمت شبکه داخلی ارائهدهنده خدمات (ISP) هدایت نشود. پورت 25 (SMTP یا پروتکل ساده انتقال ایمیل) مسدود شده است و باید مسدود باقی بماند، زیرا باز گذاشتن آن، رله را به منبع ارسال اسپم تبدیل میکند و آدرس IP شما ظرف چند روز در لیست سیاه قرار میگیرد.
یک رله خروجی برای مفید بودن باید حداقل پورتهای 80 و 443 را باز بگذارد. مستندات رله خروجی Tor مستقیماً به این حداقل اشاره دارد. اگر ارائهدهنده شما سیاستی سختگیرانهتر از سیاست کاهشیافته (reduced policy) میخواهد، یک رله خروجی که فقط ترافیک وب را عبور میدهد نیز همچنان مشارکت مؤثری محسوب میشود:
ExitPolicy accept *:80
ExitPolicy accept *:443
ExitPolicy reject *:*فهرست را با reject *:* به پایان برسانید تا سیاست شما کامل باشد و هیچ قاعده دیگری از جای دیگری به ارث نرسد. سیاست کاهشیافته اجازه استفاده از پورت 22 (SSH) را میدهد که معمولاً منبع گزارشهای حملات brute-force است؛ بنابراین اگر ترجیح میدهید با این دسته از ایمیلهای شکایتی مواجه نشوید، ExitPolicy reject *:22 را در بالای سایر قواعد اضافه کنید. پورتهای اشتراکگذاری فایل در محدوده 6881-6999 منبع معمول دریافت اخطارهای کپیرایت هستند و سیاست کاهشیافته از قبل آنها را حذف کرده است.
تغییر در سیاست خروج تنها پس از آنکه رله شما یک descriptor جدید منتشر کند و دایرکتوری آن را منتشر نماید برای کلاینتها اعمال میشود؛ بنابراین پیش از قضاوت درباره نتیجه، چند ساعت به آن زمان بدهید.
اطلاعات تماس، کلیدهای خانواده و ثبت رله
ثبت یک exit relay به معنای پیوند دادن آن به نامی است که یک غریبه بتواند آن را تایید کند. دو مکانیزم برای این کار وجود دارد که با هم عمل میکنند.
اولین مورد، یک فایل شناختهشده است. هویت خانواده خود را در دامنهای که کنترل میکنید منتشر کنید، سپس آن گواهی را در ContactInfo نامگذاری کنید:
ContactInfo email:tor[]example.org url:https://example.org proof:uri-familyid-ed25519 ciissversion:3این فایل در https://example.org/.well-known/tor-relay/ed25519-family-id.txt قرار دارد و شامل شناسه خانواده شماست. اکنون هر کسی میتواند تایید کند که هر کس ادعای مالکیت این رلهها را دارد، همان دامنه را نیز کنترل میکند. این تفاوت بین یک آدرس تماس و یک آدرس تاییدشده است.
دومین مورد، خودِ خانواده است. اگر بیش از یک رله را اجرا میکنید، شبکه باید بداند که آنها دارای اپراتور مشترک هستند تا کلاینت هرگز مداری را از طریق دو دستگاه شما ایجاد نکند. نسخه فعلی tor این کار را با یک کلید خانواده به نام Happy Families در رلههایی که نسخه 0.4.9.2-alpha یا جدیدتر را اجرا میکنند، انجام میدهد:
tor --keygen-family exampleFamilyاین دستور exampleFamily.secret_family_key را مینویسد و یک خط FamilyId را چاپ میکند. فایل کلید مخفی را در دایرکتوری کلید هر رله (/var/lib/tor/keys در Debian و Ubuntu) کپی کنید، پسوند .secret_family_key را روی نام فایل حفظ کنید، خط چاپشده FamilyId را به هر torrc اضافه کنید و tor را reload کنید. مستندات Tor صراحتاً بیان میکنند که همچنان باید گزینه قدیمی MyFamily را که شامل اثر انگشت (fingerprint) تمام رلهها است تنظیم کنید تا زمانی که پروژه اعلام کند دیگر نیازی به آن نیست؛ بنابراین هر دو را پیکربندی کنید. اثر انگشت هر رله در /var/lib/tor/fingerprint موجود است.
در دستگاههای دوم و سوم است که عملیات اهمیت پیدا میکند و مدیریت چندین سرور لینوکس بهطور همزمان در اینجا نیز همانند هر جای دیگری یک چالش است. از /var/lib/tor/keys در جایی خارج از سرور نسخه پشتیبان تهیه کنید. اگر آن را از دست بدهید، رله بهعنوان یک غریبه بازمیگردد و باید تمام پرچمها و اعتبار خود را دوباره از صفر کسب کند.
همچنین در لیست پستی tor-relays عضو شوید. تغییراتی که بر اپراتورها تاثیر میگذارد، ابتدا در آنجا اعلام میشود.
Reverse DNS و اعلان خروج روی پورت 80
پیش از آنکه relay ترافیکی را منتقل کند، رکورد Reverse DNS را تنظیم کنید. دستورالعملهای خروجی Tor توصیه میکنند که این رکورد ماهیت سرور را مشخص کند، چیزی شبیه به tor-exit-01.example.org. دلیل این کار جنبه عملی دارد. وقتی یک آدرس ناشناس در لاگهای شخصی ظاهر میشود، اولین کاری که مدیر سیستم انجام میدهد، اجرای یک reverse lookup است. نامی که شامل "tor-exit" باشد، پیش از آنکه کسی برای شما نامهای بنویسد، پاسخ سؤال را میدهد؛ این کار باعث میشود بخشی از شکایتهای احتمالی اصلاً ارسال نشوند. از ارائهدهنده خدمات بخواهید رکورد PTR (اشارهگر) را تنظیم کند و شما نیز یک رکورد forward منطبق در سمت خود اضافه کنید.
سپس یک صفحه اعلان روی پورت 80 قرار دهید که همین موضوع را با کلمات بیان کند. راهنماهای قدیمی این کار را با تنظیم DirPortFrontPage در tor انجام میدادند که به DirPort وابسته بود. قابلیت DirPort از نسخه 0.4.6.5 برای relayها منسوخ شده است، بنابراین از یک وبسرور کوچک استفاده کنید.
sudo apt install -y nginx
sudo install -d -m 755 /srv/tor-exit-noticeفایل /srv/tor-exit-notice/index.html را بنویسید:
<!DOCTYPE html>
<html>
<head><title>This is a Tor exit relay</title></head>
<body>
<h1>This is a Tor exit relay</h1>
<p>Traffic from this address was sent by a user of the Tor network. It did not
come from the operator of this machine, and this machine keeps no record of
who sent it.</p>
<p>Operator: Example Org. Abuse reports: abuse@example.org. Every report gets a
reply from a person.</p>
<p>To check whether this address was a Tor exit at a given date and time:
https://metrics.torproject.org/exonerator.html</p>
</body>
</html>این بلوک سرور را در /etc/nginx/sites-available/tor-exit-notice بنویسید:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /srv/tor-exit-notice;
index index.html;
access_log off;
}آن را فعال کنید، سایت پیشفرض nginx را حذف کنید و نتیجه را بررسی کنید:
sudo ln -sf /etc/nginx/sites-available/tor-exit-notice /etc/nginx/sites-enabled/tor-exit-notice
sudo rm -f /etc/nginx/sites-enabled/default
sudo nginx -t && sudo systemctl reload nginx
curl -s http://127.0.0.1/ | head -n 5خروجی nginx -t که شامل syntax is ok و test is successful باشد، به این معنی است که فایل به درستی تجزیه (parse) شده است. دستور curl باید خطوط ابتدایی اعلان شما را چاپ کند. اگر صفحه خوشآمدگویی nginx چاپ شد، یعنی سایت پیشفرض همچنان فعال است و از بلوک شما استفاده نمیشود.
آن را اجرا کنید و محتوای لاگ را بخوانید
sudo systemctl restart tor@default
sudo journalctl -u tor@default -n 50 --no-pagerپس از چند دقیقه، لاگ باید حاوی خطی باشد که نشان میدهد سایر رلهها میتوانند به شما متصل شوند:
Self-testing indicates your ORPort is reachable from the outside. Excellent.اگر این خط ظاهر نشد، یعنی ORPort در دسترس نیست. با استفاده از sudo ss -lntp | grep 443 بررسی کنید که tor در حال گوش دادن است یا خیر، سپس با nc -vz your.address.here 443 پورت را از یک ماشین دیگر تست کنید. معمولاً وجود یک فایروال در مقابل VPS، چه فایروال خودتان و چه فایروالی در پنل مدیریتی ارائهدهنده، علت این مشکل است.
با استفاده از systemctl is-enabled tor بررسی کنید که سرویس پس از reboot دوباره بالا میآید؛ این دستور باید enabled را چاپ کند.
رله شما حدود سه ساعت پس از شروع به کار، با نام مستعاری که انتخاب کردهاید در Relay Search ظاهر میشود. ترافیک طی چند روز افزایش مییابد، زیرا سیستم اندازهگیری پهنای باند شبکه باید رله شما را مشاهده کند تا کلاینتها وزن بیشتری به آن اختصاص دهند. اینکه یک رله خروجی جدید در روز اول تقریباً هیچ ترافیکی نداشته باشد، طبیعی است.
دفترچه راهنمای مقابله با سوءاستفاده و ظاهر ایمیلها
پیش از دریافت اولین شکایت، دفترچه راهنمای خود را آماده کنید، چرا که معمولاً اولین شکایت در همان هفته اول ارسال میشود. بخش عمده این ایمیلها توسط ماشین تولید میشوند. طبق دستورالعملهای خروجی Tor، گزارشهای خودکار حدود 80 درصد از کل موارد را تشکیل میدهند و یک پاسخ استاندارد، تکلیف اکثر موارد باقیمانده را نیز روشن میکند.
آنچه در واقع دریافت میکنید به این شرح است: گزارش اسکن یا brute-force که توسط سیستم تشخیص نفوذ (IDS) شخصی تولید شده و آدرس و زمان دقیق (timestamp) شما را ذکر میکند. یک اخطار کپیرایت، اگر سیاستهای شما اجازه استفاده از پورتهای اشتراک فایل را میدهد. شکایتی مبنی بر ارسال اسپم در انجمنها یا بخش نظرات از سوی مالک یک وبسایت. گاهی اوقات نیز درخواست حفظ دادهها (preservation request) یا احضاریه از سوی مراجع قانونی دریافت میکنید که در دستهبندی متفاوتی قرار میگیرد و زمانی است که باید بهجای استفاده از قالبهای آماده، با یک وکیل مشورت کنید.
پاسخ کوتاه است و تقریباً در هر بار ارسال، یکسان است:
Hello,
Thank you for the report. The address 203.0.113.10 is a Tor exit relay,
operated by <your name> at <your organisation>. The connection you saw was
made by a user of the Tor network. It did not originate on this machine.
This relay keeps no record of which user made which connection, so I cannot
identify the sender and there are no logs for me to hand over.
You can confirm that this address was a Tor exit at the date and time in
question here: https://metrics.torproject.org/exonerator.html
If you would prefer to stop Tor traffic reaching your service, the current
list of exit addresses is published here:
https://check.torproject.org/torbulkexitlist
I read this mailbox personally and will answer any follow-up.
<your name>چهار عادت باعث میشود این روند بهخوبی پیش برود. ظرف یک روز کاری پاسخ دهید، از آدرسی که در ContactInfo مشخص شده استفاده کنید و آن را با نام خود امضا کنید. هرگز پیشنهاد شناسایی کاربر را ندهید، زیرا قادر به انجام آن نیستید و اپراتوری که چنین وعدهای بدهد، بعداً مجبور به شکستن آن خواهد شد. تمام پاسخها را در یک پوشه نگهداری کنید تا ایمیل دوم درباره همان حادثه، پاسخ یکسانی دریافت کند. اگر ارائهدهنده خدمات، شکایتی را به همراه اخطار تعلیق ارسال کرد، ابتدا به ارائهدهنده و سپس به گزارشدهنده پاسخ دهید.
دو لینک بیشترین بار معنایی را در این پاسخها بر دوش میکشند. ExoneraTor به سوالی که یک بازرس واقعاً دارد پاسخ میدهد: آیا این آدرس در آن لحظه خاص، یک خروجی Tor بوده است یا خیر. bulk exit list یک فهرست ساده از آدرسهای خروجی فعلی است که هر آدرس در یک خط قرار دارد و برای کسانی است که تصمیم گرفتهاند Tor را مسدود کنند و ترجیح میدهند این کار را بهجای حدس و گمان، بهدقت انجام دهند.
پهنای باند، هزینه و رله دوم
خروجیها (Exits) ترافیک واقعی را جابهجا میکنند. پیش از سفارش، سقف ماهانه را تعیین کنید و بپرسید که پس از اتمام سقف مجاز، ارائهدهنده چگونه صورتحساب صادر میکند؛ زیرا هزینه واقعی یک VPS عمدتاً به میزان انتقال داده بستگی دارد تا قیمت اسمی آن. Tor میتواند محدودیتهای شما را در این زمینه اعمال کند:
AccountingMax 4 TBytes
AccountingStart month 1 00:00
RelayBandwidthRate 20 MBytes
RelayBandwidthBurst 25 MBytesAccountingMax باعث میشود Tor پس از جابهجایی آن حجم از داده در دوره حسابداری، به حالت خواب (hibernate) برود و در ابتدای دوره بعدی بیدار شود. پیش از آنکه به اعداد اعتماد کنید، آمار ماه اول را با شمارنده خودِ ارائهدهنده مقایسه کنید، زیرا این دو همیشه بایتهای یکسانی را نمیشمارند. RelayBandwidthRate نرخ پایدار را محدود میکند؛ این همان چیزی است که باعث میشود لینک خروجی قابلاستفاده باقی بماند و ارائهدهنده نیز حساسیت کمتری نشان دهد.
هنگامی که خروجی دوم را اضافه میکنید، آن را در شبکه متفاوتی قرار دهید، نه در همان رکِ خروجی اول. تنوع، بخش بزرگی از ارزش یک خروجی است و دو ماشین در یک مکان، با هم از کار میافتند. آنها را در یک خانواده (family) قرار دهید، اطلاعات تماس تأییدشده یکسانی برای هر دو منتشر کنید و به ایمیلهای مربوط به هر دو پاسخ دهید. خروجیای که هیچکس نتواند با آن تماس بگیرد، به عنوان یک مشکل ناشناس تلقی میشود. خروجیای که اپراتور آن در همان روز پاسخ میدهد، به عنوان سروری با یک انسان در پشت آن شناخته میشود؛ که در واقعیت نیز همینطور است.
FAQ
آیا میتوانم روی VPS فعلی خود یک Tor exit node اجرا کنم؟
خیر، و این تنها موردی است که باید در آن سختگیر بود. یک exit node به آدرس اختصاصی نیاز دارد که هیچ سرویس دیگری روی آن میزبانی نشود و ارائهدهندهٔ آن نیز از قبل موافقت کرده باشد که ترافیک خروجی را عبور دهد و ایمیلهای مربوط به سوءاستفاده (abuse) را بدون تغییر برای شما ارسال کند. در یک VPS عمومی، از جمله سرویسهای ما، آن آدرس در حال انجام وظایف دیگری است و با مشتریانی که سرویسهای عادی اجرا میکنند در یک شبکه قرار دارد. روی ماشینی که دارید، یک non-exit relay یا یک obfs4 bridge اجرا کنید. این موارد واقعاً مفید هستند، تقریباً هیچ شکایتی ایجاد نمیکنند و به چیزی بیش از همان سروری که هزینه آن را پرداخت میکنید، نیاز ندارند.
یک Tor exit relay چقدر ایمیل سوءاستفاده دریافت میکند و چه کسی آنها را دریافت میکند؟
این موضوع به exit policy شما بستگی دارد. با ReducedExitPolicy 1، مسدود بودن پورت 25 و حذف پورتهای اشتراکگذاری فایل، بخش عمدهای از موارد دریافتی شامل اسکنهای خودکار و گزارشهای brute-force است. طبق دستورالعملهای Tor، گزارشهای خودکار تقریباً 80 درصد کل موارد را تشکیل میدهند. ایمیلها به هر کسی که واحد abuse ارائهدهنده برایش فوروارد کند ارسال میشود؛ به همین دلیل است که پیش از سفارش باید بپرسید که آیا آنها ایمیلها را با آدرس اصلی گزارشدهنده برای شما فوروارد میکنند یا خیر. همان آدرس را در ContactInfo و در صفحه اطلاعرسانی پورت 80 منتشر کنید و ظرف یک روز کاری پاسخ دهید.
آیا باید نام واقعی و آدرس ایمیل خود را منتشر کنم؟
بله. ContactInfo در دایرکتوری عمومی relayها منتشر میشود و هر کسی میتواند آن را دانلود کند؛ نام reverse DNS نشان میدهد که این ماشین چیست و صفحه اطلاعرسانی روی پورت 80 نیز آن را تکرار میکند. این شفافیت بخشی از طراحی است، نه یک اثر جانبی. با یک exit node که اطلاعات تماس معتبری ندارد، مانند یک مزاحم ناشناس برخورد میشود و برخی کلاینتها، exitهایی را که هیچ اطلاعات تماسی منتشر نمیکنند، از لیست خود حذف میکنند. proof:uri-familyid-ed25519 و فایل /.well-known/tor-relay/ed25519-family-id.txt را روی دامنهای که کنترل میکنید اضافه کنید تا اطلاعات تماس به جای ادعای صرف، قابلتایید باشد.
چرا relay خروجی جدید من تقریباً هیچ ترافیکی ندارد؟
ابتدا بررسی کنید که journalctl -u tor@default شامل Self-testing indicates your ORPort is reachable from the outside. Excellent. باشد، زیرا relayای که در تست دسترسی (reachability test) شکست بخورد، هرگز منتشر نمیشود و هیچ ترافیکی نخواهد داشت. اگر این خط وجود دارد، پاسخ معمولاً زمان است. یک relay حدود سه ساعت پس از راهاندازی در Relay Search ظاهر میشود و کلاینتها تنها زمانی ترافیک قابلتوجهی به آن میفرستند که اندازهگیری پهنای باند شبکه آن را مشاهده کرده باشد، که این فرآیند چند روز طول میکشد. همچنین برای اینکه relay شما به عنوان یک exit شناخته شود، داشتن سیاستی که پورتهای 80 و 443 را مجاز بداند، الزامی است.