۱۳۹۳/۰۸/۲۳

نوشته شده توسط Reza Alizadeh Majd
دسته بندي: , , , , ,

چند وقت پیش که داشتم tor رو روی اوبونتو نصب میکردم، سراغ پروکسی گیج کننده (obfsproxy) هم رفتم. اما چون به یه خطایی خوردم بیخیالش شدم و با خود tor بدون استفاده از obfsproxy کار میکردم. تا اینکه امروز تنبلی رو کنار گذاشتم و با یه سرچ کوچیک توی اینترنت راه حل رفع مشکل نصب obfsproxy رو توی اوبونتو پیدا کردم.

برای اینکار، بعد از نصب tor باید بسته obfsproxy رو هم نصب کنیم:

sudo apt-get install tor
sudo apt-get install obfsproxy

حالا که بسته های مورد نیاز خودمون رو نصب کردیم باید تنظیمات tor رو انجام بدیم تا از obfsproxy استفاده کنه. برای اینکار فایل torrc خودمون رو ویرایش می‌کنیم:

sudo vi /etc/tor/torrc

تنظیمات زیر رو به انتهای این فایل اضافه میکنیم:

UseBridges 1
ClientTransportPlugin obfs2 exec /usr/bin/obfsproxy --managed 
ClientTransportPlugin obfs3 exec /usr/bin/obfsproxy --managed

در اینجا یه نکته ای وجود داره و اونم اینه که ممکنه که obfsproxy تو مسیر دیگه ای نصب شده باشه ( توی راهنماهایی که توی اینترنت وجود داشت معمولا در مسیر /usr/local/bin ) که باید با توجه به مسیر نصب روی سیستم خودتون مسیر های دو خط آخر رو اصلاح کنید.

حالا بعد از انجام تنظیمات بالا نیاز داریم تا یکسری bridge برای استفاده tor داشته باشیم که برای بدست آوردن جدید ترین bridge ها یک ایمیل به آدرس bridges@torproject.org میفرستیم و توی متن ایمیل مون از یکی از دستورات زیر با توجه به نوع bridgeی که لازم داریم، استفاده میکنیم:

جهت دریافت bridge های عادی:
get bridges

جهت دریافت bridge های بر پایه obfs2:
get transport obfs2

 جهت دریافت bridge های بر پایه obfs3:
get transport obfs3

بعد از اینکه ایمیل درخواست خودمون رو ارسال کردیم، به فاصله چند لحظه یک ایمیل دریافت میکنیم که حاوی ۳ تا آدرس bridge از نوع مورد نظر ماست، این آدرس ها رو هم بصورت زیر در ادامه فایل تنظیمات اضافه میکنیم:

bridge [transport type] IP_ADDRESS:PORT [finger print]

بطور مثال برای bridge های عادی:
bridge 111.111.111.111:1111 21b87f4b3e43cce851344f0e85a24694b27d114b

و برای bridge های از نوع obfs2:
bridge obfs2 111.111.111.111:1111 21b87f4b3e43cce851344f0e85a24694b27d114b

حالا که تنظیمات خودمون رو انجام دادیم، فایل تنظیمات رو ذخیره میکنیم و سرویس tor رو دوباره راه اندازی میکنیم:

sudo service tor restart

بعد از راه اندازی سرویس tor میتونیم با مشاهده انتهای لاگ فایل tor از وصل شدن اون مطلع بشیم:

tailf /var/log/tor/log 

Nov 14 20:21:24.000 [notice] We now have enough directory information to build circuits.
Nov 14 20:21:24.000 [notice] Bootstrapped 80%: Connecting to the Tor network.
Nov 14 20:21:24.000 [notice] Bootstrapped 90%: Establishing a Tor circuit.
Nov 14 20:21:31.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
Nov 14 20:21:31.000 [notice] Bootstrapped 100%: Done.

خوب تا اینجا روش معمول راه اندازی bridge ها بر روی tor بود و اگه قرار نباشه از obfsproxy استفاده کنیم تا اینجا کارمون راه افتاده و میتونیم از tor استفاده کنیم.

اما اگه بخوایم از  bridge های بر پایه obfsproxy استفاده کنیم موقع اجرای tor با خطای زیر روبرو میشیم:

Nov 14 19:56:34.000 [warn] We were supposed to connect to bridge '54.164.6.73:40872' using pluggable transport 'obfs3', but we can't find a pluggable transport proxy supporting 'obfs3'. This can happen if you haven't provided a ClientTransportPlugin line, or if your pluggable transport proxy stopped running.

این خطا به دلیل مشکلی پیش میاد که توی اسکریپت apparmor برای tor وجود داره و برای رفع اون باید فایل اسکریپت apparmor برای tor رو ویرایش کنیم:

sudo vi /etc/apparmor.d/system_tor

توی این فایل باید مسیر obfsproxy رو بصورت زیر اضافه کنیم:

/usr/bin/obfsproxy  Ux,

که فایل اسکریپت به صورت زیر تغییر میکنه:

# vim:syntax=apparmor
#include <tunables/global>

profile system_tor {
  #include <abstractions/tor>

  owner /var/lib/tor/** rwk,
  owner /var/log/tor/* w,

  /usr/bin/obfsproxy  Ux,  ## this is the FIX

  /{,var/}run/tor/control w,
  /{,var/}run/tor/tor.pid w,
  /{,var/}run/tor/control.authcookie w,
  /{,var/}run/tor/control.authcookie.tmp rw,

  # Site-specific additions and overrides. See local/README for details.
  #include <local/system_tor>
}

حالا با راه اندازی مجدد tor خطای قبلی برطرف میشه و به شبکه tor وصل میشیم.

0 نظر:

ارسال یک نظر