Multitor - أداة تسمح لك بإنشاء مثيلات متعددة TOR مع موازنة التحميل

أداة تسمح لك بإنشاء مثيلات TOR متعددة مع حركة مرور موازنة التحميل بينها بواسطة HAProxy . يوفر نقطة نهاية واحدة للعملاء. بالإضافة إلى ذلك ، يمكنك عرض عمليات TOR التي كانت قيد التشغيل سابقًا وإنشاء هوية جديدة لجميع العمليات أو العمليات المحددة.
و multitor تم إعادة كتابة تماما على أساس:
  • مشروع متعدد TOR كتبها Jai Seidl : متعدد TOR
  • المصدر الأصلي هو ( مشروع سيباستيان وين ): القشطالموزع مع دوائر TOR المتعددة

المعلمات
يوفر الخيارات التالية:
  Usage:
     multitor <option|long-option>
 
   Examples:
     multitor --init 2 --user debian-tor --socks-port 9000 --control-port 9900
     multitor --show-id --socks-port 9000
 
   Options:
         --help                      show this message
         --debug                     displays information on the screen (debug mode)
         --verbose                   displays more information about TOR processes
     -i, --init <num>                init new tor processes
     -s, --show-id                   show specific tor process id
     -n, --new-id                    regenerate tor circuit
     -u, --user <string>             set the user (only with -i|--init)
         --socks-port <port_num|all> set socks port number
         --control-port <port_num>   set control port number
         --proxy <socks|http>        set load balancer

المتطلبات يستخدم
Multitor أدوات مساعدة خارجية ليتم تثبيتها قبل التشغيل:

كيفية الاستخدام
إنها بسيطة - للتثبيت:
./setup.sh install
للإزالة:
./setup.sh uninstall
  • bin/multitorيتم وضع الارتباطفي/usr/local/bin
  • يتم وضع صفحة الرجل في /usr/local/man/man8

إنشاء العمليات
ثم مثال على بدء الأداة:
multitor --init 2 -u debian-tor --socks-port 9000 --control-port 9900
ينشئ عمليات TOR جديدة ويحدد عدد العمليات المراد إنشاؤها:
  • --init 2
يحدد المستخدم الذي سيتم إنشاء العمليات الجديدة منه (يجب أن يكون المستخدم موجودًا في النظام):
  • -u debian-tor
يحدد رقم المنفذ لاتصالات TOR . زيادة بنسبة 1 لكل عملية لاحقة:
  • --socks-port 9000
يحدد رقم منفذ التحكم في عملية TOR . زيادة بنسبة 1 لكل عملية لاحقة:
  • --control-port 9900

مراجعة العمليات
أمثلة على الحصول على معلومات حولعملية TOR معينةتم إنشاؤها بواسطة multitor :
multitor --show-id --socks-port 9000
نريد الحصول على معلومات حول عملية TOR معينة :
  • --show-id
يمكنك استخدام جميع القيم لعرض جميع العمليات.
يحدد رقم المنفذ للاتصال. يتيح لك العثور على العملية بعد رقم المنفذ هذا:
  • --socks-port 9000

الهوية الجديدة TOR
يوجد زر استخدام هوية جديدة " في متصفح TOR أو Vidalia. يرسل إشارة إلى منفذ التحكم في TOR ، للتبديل إلى هوية جديدة. الحل البديل هو إعادة تشغيل multitor أو الانتظار للوقت المحدد في NewCircuitPeriodالمتغير ، الذي القيمة الافتراضية هي 30s .
إذا كانت هناك حاجة لإنشاء هوية جديدة:
multitor --new-id --socks-port 9000
لقد أنشأنا إنشاء هوية جديدة لعملية TOR :
  • --new-id
يمكنك استخدام جميع القيمة لتجديد الهوية لجميع العمليات. خيار بديل لإعطاء هوية جديدة هو إعادة تشغيل multitor.
يحدد رقم المنفذ للاتصال. يتيح لك العثور على العملية بعد رقم المنفذ هذا:
  • --socks-port 9000

وكيل
انظر موازنة تحميل . 

مثال المخرجات
حتى إذا قمنا بإنشاءعمليات TOR 2بواسطة Multitor سيتم إعطاء المثال:

موازنة
Multitor يستخدم اثنين من التقنيات لإنشاء آلية موازنة - وهذه هيالجوارب وكيل و كيل المتشعب . كل من هذه الأنواع من موازنة التحميل جيدة ولكن الغرض منها مختلف قليلاً. 
لتصفح مواقع الويب (بشكل عاملحركة مرور http / https ) من المستحسن استخدام http proxy . في هذا التكوين ،يتم استخدام خدمة polipo ، التي تحتوي على العديد من الوظائف المفيدة جدًا (بما في ذلك الذاكرة المؤقتة) التيلا تهدف دائمًا إلى الوصول إلى TOR . بالإضافة إلى ذلك ، نحن على ثقة في التعامل بشكل أفضل مع حركة مرور SSL. 
و الجوارب وكيل النوع هو أيضا يمكن الاعتماد عليها، ولكن عندما تصفح المواقع من خلالعقد TOR يمكن أن يسبب المزيد من المشاكل. يستخدم 
Multitor HAProxy لإنشاء خادم وكيل محلي لجميع مثيلات TOR أو Polipo التي تم إنشاؤها وتوزيع حركة المرور فيما بينها. التكوين الافتراضي في templates/haproxy-template.cfg.
يستخدم HAProxy 16379 للتواصل ، لذا يجب أن تحتوي جميع خدماتك لاستخدام موازن التحميل على رقم المنفذ هذا.


بنية الاتصال بالبروكسي SOCKS :
Client
    |
    |--------> HAProxy (127.0.0.1:16379)
                  |
                  |--------> TOR Instance (127.0.0.1:9000)
                  |
                  |--------> TOR Instance (127.0.0.1:9001)
لتشغيل موازن التحميل ، يجب إضافة --proxy socks المعلمةإلى الأمر المحدد في المثال.
multitor --init 2 -u debian-tor --socks-port 9000 --control-port 9900 --proxy socks
بعد الإطلاق ، دعنا نرى عمليات التشغيل:
netstat -tapn | grep LISTEN | grep "tor\|haproxy\|polipo"
 tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      28976/tor
 tcp        0      0 127.0.0.1:9001          0.0.0.0:*               LISTEN      29039/tor
 tcp        0      0 127.0.0.1:9900          0.0.0.0:*               LISTEN      28976/tor
 tcp        0      0 127.0.0.1:9901          0.0.0.0:*               LISTEN      29039/tor
 tcp        0      0 127.0.0.1:16379         0.0.0.0:*               LISTEN      29104/haproxy
 tcp        0      0 127.0.0.1:16380         0.0.0.0:*               LISTEN      29104/haproxy
لاختبار صحة الإعداد ، يمكنك تشغيل الأمر التالي:
for i in $(seq 1 4) ; do \
   printf "req %2d: " "$i" ; \
   curl -k --location --socks5 127.0.0.1:16379 http://ipinfo.io/ip ; \
 done
 
 req  1: 5.254.79.66
 req  2: 178.175.135.99
 req  3: 5.254.79.66
 req  4: 178.175.135.99
يحدث الاتصال عبر بروكسي الجوارب دون ذاكرة تخزين مؤقت (باستثناء المتصفحات التي لديها ذاكرة التخزين المؤقت الخاصة بهم).يجب أن يعمل Curl والبرامج الأخرى ذات المستوى المنخفض دون أي مشاكل. بنية اتصال 

وكيل HTTP
:
Client
    |
    |--------> HAProxy (127.0.0.1:16379)
                  |
                  |--------> Polipo Instance (127.0.0.1:8000)
                  |             |
                  |             |---------> TOR Instance (127.0.0.1:9000)
                  |
                  |--------> Polipo Instance (127.0.0.1:8001)
                                |
                                |---------> TOR Instance (127.0.0.1:9001)
لتشغيل موازن التحميل ، يجب إضافة --proxy httpالمعلمة إلى الأمر المحدد في المثال.
multitor --init 2 -u debian-tor --socks-port 9000 --control-port 9900 --proxy http
بعد الإطلاق ، دعنا نرى عمليات التشغيل:
netstat -tapn | grep LISTEN | grep "tor\|haproxy\|polipo"
 tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      32168/tor
 tcp        0      0 127.0.0.1:9001          0.0.0.0:*               LISTEN      32246/tor
 tcp        0      0 127.0.0.1:9900          0.0.0.0:*               LISTEN      32168/tor
 tcp        0      0 127.0.0.1:9901          0.0.0.0:*               LISTEN      32246/tor
 tcp        0      0 127.0.0.1:16379         0.0.0.0:*               LISTEN      32327/haproxy
 tcp        0      0 127.0.0.1:16380         0.0.0.0:*               LISTEN      32327/haproxy
 tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      32307/polipo
 tcp        0      0 127.0.0.1:8001          0.0.0.0:*               LISTEN      32320/polipo
لاختبار صحة الإعداد ، يمكنك تشغيل الأمر التالي:
for i in $(seq 1 4) ; do \
   printf "req %2d: " "$i" ; \
   curl -k --location --proxy 127.0.0.1:16379 http://ipinfo.io/ip ; \
 done
 
 req  1: 178.209.42.84
 req  2: 185.100.85.61
 req  3: 178.209.42.84
 req  4: 185.100.85.61
في التكوين الافتراضي ، تم إيقاف تشغيل ذاكرة التخزين المؤقتPolipo (انظر إلى قالب التكوين). إذا قمت بتعيين تكوين الشبكة في المستعرض بحيث تمر حركة المرور عبر HAProxy ، يجب أن تتذكر أن المتصفحات بها ذاكرة تخزين مؤقت خاصة بها ، مما قد يتسبب في أن يكون كل إدخال إلى الصفحة من نفس عنوان IP. هذه ليست مشكلة كبيرة لأنها ليست الحال دائما. بعد مسح ذاكرة التخزين المؤقت للمتصفح مرة أخرى ، سيتلقى خادم الويب الطلب من عنوان IP مختلف.
يمكنك التحقق من ذلك على سبيل المثال في متصفحاتفايرفوكس عن طريق تثبيت الوظيفة الإضافية Empty Cache Button by mvm " وإدخال http://myexternalip.com/website.

اصطلاح
المنفذيتم تعيينأرقام منافذ TOR بواسطة المستخدم باستخدام--socks-portالمعلمة. بالإضافة إلى ذلك ، فإن المنفذ القياسي الذييستمع عليه HAProxy هو 16379 . تستخدم Polipo منافذ 1000أصغر من تلك التي تم تعيينها لـ TOR . 

واجهة إحصائيات HAProxy
إذا كنت ترغب في عرض إحصائيات حركة المرور ، فانتقل إلىhttp://127.0.0.1:16380/stats . 
تسجيل الدخول: ha_admin
كلمة السر: تم إنشاؤها تلقائيا (انظر فيetc/haproxy.cfg)

واجهة التكوين Polipo
إذا كنت وات لعرض أو تغييرparams Polipo ، وصلت إلىhttp://127.0.0.1:8000/polipo/config(تذكر رقم المنفذ الصحيح). 

البوابة
إذا كنت تقوم ببناء بوابة لاتصالات TOR ، فيمكنك وضع HAProxy على عنوان IP خارجي عن طريق تغيير bindالتوجيه في haproxy-template.cfg :
bind 0.0.0.0:16379 name proxy

مصادقة كلمة المرور يستخدم
Multitor كلمة مرور للمصادقة على منفذ التحكم. يتم إنشاء كلمة المرور تلقائيًا وتحتوي على 18 حرفًا عشوائيًا - يتم عرضها في التقرير النهائي بعد إنشاء العمليات الجديدة. 

التسجيل
بعد تشغيل البرنامج النصي ،log/يتم إنشاء الدليل وفيه الملفات التالية مع السجلات:
  • <script_name>.<date>.log_logger()يتم حفظ جميع المكالمات وظيفة في ذلك
  • stdout.log- يتم كتابة الإخراج القياسي وأخطاء من _init_cmd()وظيفة أخرى في ذلك

بنية المشروع
|-- LICENSE.md                 # GNU GENERAL PUBLIC LICENSE, Version 3, 29 June 2007
 |-- README.md                  # this simple documentation
 |-- CONTRIBUTING.md            # principles of project support
 |-- .gitignore                 # ignore untracked files
 |-- .travis.yml                # continuous integration with Travis CI
 |-- setup.sh                   # install multitor on the system
 |-- bin
     |-- multitor               # main script (init)
 |-- doc                        # includes documentation, images and manuals
     |-- man8
         |-- multitor.8         # man page for multitor
 |-- etc                        # contains configuration files
 |-- lib                        # libraries, external functions
 |-- log                        # contains logs, created after init
 |-- src                        # includes external project files
     |-- helpers                # contains core functions
     |-- import                 # appends the contents of the lib directory
     |-- __init__               # contains the __main__ function
     |-- settings               # contains multitor settings
 |-- templates                  # contains examples and template files
     |-- haproxy-template.cfg   # example of HAProxy configuration
     |-- polipo-template.cfg    # example of Polipo configuration



Commentaires

Posts les plus consultés de ce blog