
ماسح سريع وحداتي لمُرحّلات الخروج في Tor. المستودع الرسمي (بما في ذلك متتبّع المشكلات) موجود على https://gitlab.torproject.org/tpo/network-health/exitmap

هذا المستودع غير مُدار. يُرجى الرجوع إلى فرع مشروع تور.
Exitmap هو ماسح ضوئي سريع وقابل للتوسعة مبني على بايثون لمرحلات الخروج في تور. تنفذ وحدات exitmap مهامًا تُشغّل عبر (مجموعة فرعية من) جميع مرحلات الخروج. إذا كانت لديك خلفية في البرمجة الوظيفية، فكّر في exitmap كواجهة map() لمرحلات خروج تور: يمكن للوحدات أداء أي مهمة شبكية تعتمد على TCP مثل جلب صفحة ويب، رفع ملف، الاتصال بخادم SSH، أو الانضمام إلى قناة IRC.
عمليًا، exitmap مفيد لمراقبة موثوقية وجودة مرحلات الخروج. يستخدم مشروع تور exitmap للتحقق من النتائج السلبية الكاذبة على خدمة التحقق الخاصة بمشروع تور وللعثور على مرحلات خروج خبيثة. من السهل تطوير وحدات جديدة لـ exitmap؛ ألقِ نظرة على ملف HACKING في مجلد doc/ أو اطّلع على إحدى الوحدات الموجودة.
يستخدم exitmap Stem لإنشاء دوائر إلى جميع مرحلات الخروج المعطاة. في كل مرة يخطر تور exitmap بوجود دائرة منشأة، يتم استدعاء وحدة للدائرة المنشأة حديثًا. يمكن أن تكون الوحدات نصوص بايثون خالصة أو ملفات تنفيذية. بالنسبة للملفات التنفيذية، فإن torsocks ضروري.
أخيرًا، لاحظ أن exitmap هو أداة قياس شبكة وذات فائدة محدودة لمستخدمي تور العاديين. مشروع تور يدير الأداة بانتظام بالفعل. عمليات مسح exitmap الإضافية تسبب فقط حمولة شبكة غير ضرورية. السبب الوحيد لتوفر exitmap علنًا هو أن شيفرته المصدرية وتصميمه قد يكونان موضع اهتمام البعض.
يستخدم exitmap مكتبة Stem للتواصل مع تور. هناك طرق متعددة لتثبيت Stem. الأسهل قد يكون استخدام pip مع ملف requirements.txt المرفق:
$ pip install -r requirements.txt
الوسيط الوحيد الذي يتطلبه exitmap هو اسم وحدة. على سبيل المثال، يمكنك تشغيل exitmap مع وحدة checktest عن طريق:
$ ./bin/exitmap checktest
سيعرض مخرجات سطر الأوامر بعد ذلك كيفية تمهيد تور، ومخرجات وحدة checktest، وملخص المسح. إذا كنت لا تحتاج إلى ثلاث قفزات وتفضل استخدام قفزتين مع قفزة أولى ثابتة، شغّل:
$ ./bin/exitmap --first-hop 1234567890ABCDEF1234567890ABCDEF12345678 checktest
لتشغيل نفس الاختبار على مرحلات الخروج الألمانية فقط، نفّذ:
$ ./bin/exitmap --country DE --first-hop 1234567890ABCDEF1234567890ABCDEF12345678 checktest
إذا كنت ترغب في التوقف لمدة خمس ثوانٍ بين إنشاء الدوائر لتقليل الحمل على شبكة تور ووجهة المسح، شغّل:
$ ./bin/exitmap --build-delay 5 checktest
لاحظ أن 1234567890ABCDEF1234567890ABCDEF12345678 هو بصمة إصبع زائفة يجب استبدالها بمرحل خروج تتحكم به.
لمعرفة المزيد عن جميع خيارات exitmap، شغّل:
$ ./bin/exitmap --help
يأتي Exitmap مع بطاريات مدمجة، ويوفر الوحدات التالية:
بشكل افتراضي، يحاول exitmap قراءة ملف .exitmaprc في مجلد منزلك. يقبل الملف جميع خيارات سطر الأوامر، لكن يجب استبدال الشرطات بشرطات سفلية. إليك مثال:
[Defaults]
first_hop = 1234567890ABCDEF1234567890ABCDEF12345678
verbosity = debug
build_delay = 1
analysis_dir = /path/to/exitmap_scans
لا يعجبك exitmap؟ ألقِ نظرة على tortunnel، SoaT، torscanner، DetecTor، أو SelekTOR.
قبل تقديم طلبات السحب، يرجى التأكد من اجتياز جميع اختبارات الوحدة عن طريق تشغيل:
$ pip install -r requirements-dev.txt
$ py.test --cov-report term-missing --cov-config .coveragerc --cov=src test
جهة الاتصال: Philipp Winter [email protected]
بصمة OpenPGP: B369 E7A2 18FE CEAD EB96 8C73 CF70 89E3 D7FD C0D0