اثنا عشر بناءً

تشغيل مرحّل Tor ضمن سياسة الاستخدام المقبولة

مرحّل غير مخرج مع IPv6، وحساب النطاق الترددي، ووحدة systemd محصّنة، ومراجعة تحقق تؤكد وصول بصمة الإصبع إلى الإجماع.

ماذا يبني هذا الدليل

مرحّل وسيط: يقبل الاتصالات من العملاء والمرحّلات الأخرى، ويوجّه الحركة داخل الشبكة، ولا يفتح أبدًا اتصالًا بوجهة على الإنترنت العادي. لا يتلقى أحد شكوى إساءة بخصوص مرحّل وسيط، لأنه من الخارج يتبادل حركة مشفرة مع قائمة منشورة من مرحّلات أخرى ولا شيء غير ذلك.

هذا الفرق هو السبب الكامل لوجود هذا الدليل. مرحّلات الخروج موضوع منفصل: الشكاوى المتعلقة بها تصل إلى مكتب إساءة الاستخدام لدينا وليس إلى مكتبك، لذا اقرأ سياسة الاستخدام المقبول وافتح تذكرة قبل إعداد واحد. كل ما يلي يعطّل الخروج عمدًا، مرتين.

قبل البدء

  • R-4. تور أحادي الخيطية لكل اتصال ومقيّد بالشبكة؛ أربعة أنوية مخصصة ستشبع الخط قبل أن يلاحظ المعالج ذلك.
  • موقع بعرض نطاق أنت سعيد بالتبرع به. BUH-01 وHEL-01 هما أرخص تيرابايت نبيعه، وكلاهما لديه النقل لدعم ذلك.
  • ساعة مضبوطة. المرحّلات ذات التوقيت المنحرف تُسقط من الإجماع، وهذا هو السبب الأكثر شيوعًا لمرحّل يبدأ بشكل مثالي ولا يظهر في أي مكان أبدًا.

1. النظام الأساسي

apt update && apt full-upgrade -y
apt install -y tor nyx chrony nftables
timedatectl set-timezone UTC
chronyc tracking

يجب أن يعرض chronyc tracking فرق توقيت النظام في نطاق ميكروثانية. إذا عرض ثوانٍ، توقف وأصلح ذلك أولًا؛ لا شيء لاحقًا سيعمل.

2. إعداد المرحّل

استبدل /etc/tor/torrc بما يلي. اقرأ كل سطر، لأن اثنين منهما هما ما يبقيك داخل السياسة:

Nickname exampleRelay
ContactInfo [email protected]

ORPort 9001
ORPort [2001:db8:1a2b::2]:9001
SocksPort 0
ControlPort 0

ExitRelay 0
ExitPolicy reject *:*
IPv6Exit 0

RelayBandwidthRate 40 MBytes
RelayBandwidthBurst 60 MBytes
AccountingMax 40 TBytes
AccountingStart month 1 00:00

MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1

User debian-tor
DataDirectory /var/lib/tor
Log notice syslog

ExitRelay 0 وExitPolicy reject *:* هما حزام وأمان. أي منهما يكفي وحده؛ كلاهما معًا يضمنان ألا تحوّلك إعدادات الحزمة الافتراضية مستقبلًا، ولا تعديل نصف متذكر في منتصف الليل، إلى مرحّل خروج بهدوء.

استبدل عنوان IPv6 الحقيقي لمثيلك في سطر ORPort الثاني. كل مثيل يأتي مع /64 مُوجَّه، لذا لا يوجد سبب لتشغيل مرحّل v4 فقط، والمرحّلات التي تدعم v6 ما زالت أقل عرضًا من v4.

محاسبة النطاق تستحق تفكيرًا وليس نسخًا ولصقًا. حركة المرور على شبكتنا غير محدودة ضمن الاستخدام العادل، لكن مرحّلًا بلا حد أقصى سيستخدم بالضبط ما تستطيع الشبكة إيجاده له، إلى الأبد. أربعون ميغابايت في الثانية مع سقف شهري أربعين تيرابايت هو مرحّل كريم وحسن السلوك. عندما يتحقق المحاسبة، يدخل المرحّل في سبات حتى تنتهي الفترة بدلًا من أن يُقطع في منتصف الدارة.

إذا كنت تشغّل أكثر من مرحّل واحد في أي مكان، أضف سطرًا يحتوي على MyFamily يدرج كل بصمة بما فيها هذه البصمة، مفصولة بفواصل. يستخدمها العملاء لتجنب بناء دارة تمر عبر جهازين تحت السيطرة نفسها، وحذفها هو الشكوى التكوينية الأكثر شيوعًا الموجهة للمشغلين.

3. تحصين الوحدة

الوحدة المرفقة جيدة؛ هذه الأسطر تجعلها أقل إثارة للاهتمام لأي شخص يجد خللًا فيها.

systemctl edit tor@default
[Service]
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
ProtectSystem=strict
ProtectHome=yes
ProtectKernelTunables=yes
ProtectKernelModules=yes
ProtectControlGroups=yes
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
RestrictNamespaces=yes
MemoryDenyWriteExecute=yes
ReadWritePaths=/var/lib/tor /var/log/tor /run/tor
LimitNOFILE=65535

حد واصفات الملفات مهم أكثر مما يبدو. المرحّل النشط يحمل آلاف المقابس في وقت واحد، والحد الافتراضي ينتج مرحّلًا يعمل لمدة أسبوع ثم يبدأ برفض الاتصالات دون شيء واضح في السجل.

4. جدار الحماية

flush ruleset

table inet filter {
  chain input {
    type filter hook input priority filter; policy drop;
    ct state established,related accept
    ct state invalid drop
    iif lo accept
    ip protocol icmp accept
    ip6 nexthdr icmpv6 accept
    tcp dport 22 accept
    tcp dport 9001 accept
  }
  chain forward {
    type filter hook forward priority filter; policy drop;
  }
}
systemctl enable --now nftables
systemctl restart tor@default

لاحظ أن منفذ المقاييس مرتبط بعنوان الحلقة المحلية وبالتالي لا يحتاج إلى قاعدة. يمكنك الوصول إليه عبر نفق SSH عندما تريده، ولا تكشفه أبدًا؛ مقاييس المرحّل تهم أشخاصًا أكثر منك.

التحقق

هذا هو الجزء الذي يستغرق ساعات وليس دقائق، لذا ابدأه وابتعد.

أولًا، خلال حوالي عشرين دقيقة من البدء، يجب أن يقول السجل إن المرحّل اختبر منفذه من الخارج ونجح:

journalctl -u tor@default --since "20 min ago" | grep -i "self-testing"

تريد السطر الذي يشير إلى أن منفذ ORPort الخاص بك قابل للوصول من الخارج. إذا لم يظهر أبدًا، فإن جدار الحماية يمنع المنفذ 9001 الوارد أو عنوان v6 في ملف torrc لا يطابق المثيل.

ثانيًا، خذ بصمتك واحتفظ بها:

cat /var/lib/tor/fingerprint

ثالثًا، أكد أن المرحّل يقوم بعمل وليس مجرد تشغيل:

nyx
curl -s http://127.0.0.1:9035/metrics | grep -E "tor_relay_traffic|tor_relay_connections"

يجب أن ترتفع عدادات الحركة في غضون ساعة من نجاح الاختبار الذاتي. تحتاج سلطات الدليل إلى حوالي ثلاث ساعات لتصويت بصمتك في الإجماع، ويبدأ العملاء في إرسال حجم ذي معنى فقط بعد ذلك. تصل علامة الحارس في اليوم الثامن تقريبًا إذا استمر وقت التشغيل، وعندها ينتقل الرسم البياني للحركة من تدفق صغير إلى الحد الذي قمت بتعيينه.

رابعًا، والأهم لهذا البناء بالتحديد، أثبت أنك لا تخرج. من جهاز ثانٍ، تحقق من أن لا شيء سوى حركة المرحّل يخرج:

ss -tn state established | wc -l
ss -tn state established sport = :9001 | wc -l

تقريبًا كل اتصال مُنشأ يجب أن يتضمن منفذ ORPort. عدد كبير من الاتصالات الصادرة إلى منافذ عشوائية يعني سياسة خروج لم تقصدها، وعندها أوقف الخدمة وأعد قراءة الخطوة الثانية.

تشغيله

الشيءالإجابة
إعادة التشغيلتكلفك بضع ساعات من السمعة. اجمع تغييراتك.
الترقياتapt upgrade ثم أعد التشغيل. المرحّلات التي تعمل بإصدارات قديمة تُعلَّم ثم تُسقط في النهاية.
نقل المواقعانسخ /var/lib/tor/keys وستتبع البصمة المرحّل. لا يُعاد تعيين وزن الإجماع.
الشكاوىالمرحّل الوسيط لا يولد أيًا منها. إذا تلقيت واحدة، فهناك شيء يخرج ويجب عليك التحقق.
الإيقافاضبط AccountingMax على قيمة صغيرة أولًا لتصريف الدارات، أو فقط أوقفه وتقبل فقدان السمعة.

انسخ /var/lib/tor/keys إلى مكان خارج المثيل في اليوم الذي تبني فيه. مفتاح الهوية هو ما يجعل هذا المرحّل هو ذلك المرحّل؛ تفقده وتبدأ من جديد بوزن إجماع صفر، وهذا يعني ثمانية أيام من عدم استخدام أحد لك. موقفنا بخصوص ما نسجله أثناء تشغيل مرحّلك موجود على صفحة السجلات، وهو قصير.

جاهز عندما تكون

اختر مدينة. اختر الحجم. ادفع بالعملة الرقمية.

لا نماذج عن هويتك، ولا انتظار لموافقة بشرية، ولا مكالمة للتحقق من أي شيء. بمجرد تصفية الفاتورة، تصل بيانات الدخول إلى بريدك الإلكتروني.