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

احد الحلول وهو ان تستخدم  VPN، ولكن العديد من الVPNs تتطلب برنامج عميل خاص على جهازك، والذي قد لا تملك الحق بتثبيته .

إذا كان كل ما تحتاج تأمينه هو  تصفحك للويب ، هناك بديل بسيط وهو “SOCKS 5 proxy tunnel”

SOCKS proxy  هو في الأساس  SSH tunnel  حيث تقوم تطبيقات محددة بإعادة توجيه حركة مرورها  الى الـTunnel  ثم   إلى الخادم، ثم يقوم الخادم بتوجيه حركة المرور إلى الإنترنت. على عكس VPN، فإن SOCKS proxy لابد من تهيئته على على جهاز العميل وبدون برامج خاصة .

طالما لديك Droplet  مع صلاحية وصول الى  SSH، فيمكنك استخدامه بمثابة نقطة نهاية SOCKS proxy . في هذه المقالة سوف نستخدم Ubuntu 14.04 Droplet  ك proxy ، ومتصفح الإنترنت Firefox  كتطبيق العميل. بحلول نهاية هذه المقالة يجب أن تكون قادرا على تصفح مواقع الويب بشكل آمن من خلال ال  Tunnel.

 

المتطلبات:


كما ذُكر أعلاه، فإن أول شيء نحتاجه هو خادم يستطيع تشغيل أي نوع من Linux ، مثل Ubuntu 14.04, with SSH access.
بقى القليل من الإعدادات المطلوبة على جهازك المحلي. لهذا ستحتاج إلى تحميل واحد أو اثنين من  البرمجيات .

  • Firefox web browser .
  • PuTTY (مستخدمي ويندوز)    

 Firefox  يسمح لك بتعيين proxy ل Firefox فقط بدلا من وضع System_wild proxy .

PuTTY يستخدم لإعداد proxy tunnel لمستخدمي ويندوز. مستخدمي MAC OS  X أو Linux  لديهم أدوات لإعداد tunnel  مثبت مسبقا.

اعداد Tunnel على لينكس و MAC : 


على جهاز الكمبيوتر المحلي، قم بإنشاء مفتاح SSH . إذا كان لديك بالفعل مفتاح SSH ، يمكنك استخدامه.

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

بعد إعدادك للمفتاح، تأكد من إضافته إلى المفاتيح المصرح بها لمستخدمي  sudo على الخادم (في هذا المثال، هو sammyuser).

افتح  برنامجاً من على الترمنال في الجهاز الخاص بك.

على نظام التشغيل Mac OS X،  الطرفية موجوده في قائمة التطبيقات >  المرفقات .

قم بإعداد ال Tunnel بإستخدام الأمرالتالي :

Ssh -D 8123 -F -C -q -N sammyuser@example. Com

خيارات الامر السابق :

-D: يخبر SSH  اننا نريد إجراء   SOCKS Tunnel  على  رقم المنفذ المحدد  (يمكنك اختيار عدد بين 65536-1025)

-F: يجعل   العملية تعمل في  الخلفية

-C: ضغط البيانات قبل إرسالها

-q: يستخدم الوضع الصامت

-N: يخبر SSH  أن أي أمر لن يرسل بمجرد تفعيل ال Tunnel

تأكد من استبدال sammy@example.com مع اسم المستخدم  الخاص بك  و عنوان الخادم IP أو اسم النطاق  .

بمجرد إدخال الأوامر، ستنتقل  فورا إلى موجه الأوامر مرة أخرى دون أي علامة على النجاح أو الفشل؛ وهذا أمر  طبيعي

تحقق من تفعيل ال Tunnel وانه تم تشغيله مع هذا الأمر:

ps aux | grep ssh

يجب أن تكون  المخرجات للامر السابق مشابهة للتالي :

Screenshot_2016-08-26-21-58-58-1

يمكنك إنهاء التطبيق الخاص بك وسوف يبقى ال Tunnel فعالاً . وذلك بسبب استخدمنا -f التي وضعت جلسة SSH في الخلفية

ملاحظة: إذا كنت ترغب في إنهاء ال Tunnel  سيكون عليك تحديد ال PID  عبر  امر ps واستخدام  امر  kill

 

اعداد Tunnel على انظمه windows : 


قم بفتح puTTY

إذا لم تكن قد قمت بتثبيته حتى الآن، حميل PuTTY واحفظه حيث تريد. PuTTY لا يتطلب صلاحيات المسؤول لتثبيته. فقط حمل .exe وقم  بتشغيله.

أكمل الخطوات التالية لإعداد ال Tunnel

1.من قسم الجلسة، أضف  اسم المضيف (أو عنوان IP) للخادم الخاص بك، و  SSH port (عادة 22)

wXDz8J7

 

2.على اليسار، انتقل إلى:

connection < SSH< tunnels

3.أدخل أي رقم لمصدر  المنفذ  بين 65536 – 1025. في هذا المثال استخدمنا المنفذ 1337

 

ZLPgf4V

4. حدد زر الإرسال  الديناميكي (Dynamic )

5. اضغط زر Add

6.عد للجلسة على اليسار

7. أضف  اسما تحت الجلسات  المحفوظة وانقر على زر حفظ

8.اضغط زر open لإجراء الإتصال

9.أدخل اسم المستخدم وكلمة مرور الخاص بك  لتسجيل الدخول

يمكنك تصغير نافذة  PuatTY الآن، ولكن لا تغلقها. وينبغي أن يكون اتصال SSH الخاص بك  مفتوحاً

نصيحة: يمكنك حفظ اسم مستخدم (sammy) ومفتاح SSH لهذه الجلسة نفسها باتباع ارشادات مفتاح PuTTY SSH . عندها لن يكون عليك إدخال اسم المستخدم وكلمة المرور الخاصة بك في كل مرة تقوم فيها بفتح اتصال .

 

 تهيئة Firefox  لاستخدام Tunnel :


الآن لديك  SSH tunnel ، وحان الوقت لتهيئة Firefox  لاستخدام هذا ال Tunnel . تذكر أنه لتشغيل  SOCKS 5 tunnel  ، عليك إستخدام تطبيق محلي  يمكنه الاستفادة من tunnel.  و Firefox بإمكانه ذلك.

هذه الخطوة هي نفسها ل Windows ، MAC OS X، Linux .

تأكد من حصولك على رقم المنفذ الذي استخدمته في أمر  SSH الخاص بك أو في PuTTY  المشير إلى  هذا المثال. لقد استخدمنا  مثال 8123 في OS X / Linux ، و 1337 في مثال Windows  حتى الآن، أو  قد تكون  استخدمت منفذا  مختلفاً .

(تم إجراء الخطوات التالية مع  إصدار 39 من Firefox  ولكن ينبغي العمل على إصدارات أخرى، على الرغم من أن مواقع الخيارات قد تكون مختلفة.

1_في الزاوية اليمنى من الأعلى   انقر على أيقونة Hamburger  للوصول إلى قائمة فايرفوكس:

bjh8Dh1

2-انقر على أيقونة Preferences  أو Options

3-انتقل إلى قسم Advance

4-انقر فوق علامة التبويب Network

k4DKcdA

5-انقر على زر setting  تحت عنوان الاتصال. سيتم فتح نافذة جديدة

6-حدد زر الإرسال  لتهيئة   proxy  يدوياً :

70cwU1N

7-أدخل localhost في خانة  SOCKS Host

8-أدخل نفس رقم المنفذ من إتصال SHH؛ وفي الصورة يمكنك ان ترى فقد ادخلنا 1337، ليتناسب مع  تعليمات Windows

9-انقر فوق زر OK لحفظ وإغلاق التكوين الخاص بك

الآن، افتح علامة تبويب أخرى في Firefox  وابدأ في تصفح الإنترنت! يجب أن تكون اعددت  كل شيء  لتصفح آمن من خلال SSH tunnel  الخاص بك.

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

 

العودة إلى التصفح العادي الغير امن  في Firefox:

عند الانتهاء  من الحاجة إلى الاتصال المؤمن SSH tunnel ، انتقل إلى إ عدادات Networkproxy

انقر على زر الاختيار لإستخدام إعدادات proxy system ثم انقر فوق موافق.  الآن سوف يتصفح Firefox  عبر اعدادات الإتصال  العادية الخاصة بك، والتي من المحتمل  انها غير مضمونة.

إذا تم الانتهاء من استخدام ال Tunnel سيكون عليك إنهائه أيضا، والذي سنقوم بتغطيته في المقطع التالي.

إذا كنت تخطط لاستخدام  tunnel  في كثير من الأحيان يمكنك ترك المجال مفتوحا لاستخدامه لاحقا، ولكن لاحظ أنه قد ينتهي من تلقاء نفسه إذا بقي  خاملا لفترة طويلة جدا، أو إذا وضعت جهاز  الكمبيوتر على وضع sleep  أو قمت بإطفائه.

 

إغلاق ال Tunnel :


إن إغلاق الtunnel  سيوقف قدرة Firefox على   التصفح عبر  ال proxy  .

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

لإغلاق  ال Tunnel  نحتاج إلى تحديد معرف العملية (PID) باستخدام الأمر ps ، ومن ثم انهائه باستخدام الأمر kill.

دعونا نبحث عن جميع عمليات SSH  النشطة على الجهاز لدينا:

Screenshot_2016-09-02-00-34-58-1

اعثر على السطر  الذي يبدو كالأمر الذي أدخلته في وقت سابق لإنشاء ال Tunnel . وإلذي قد يبدو كالتالي :

Screenshot_2016-09-02-00-34-45-1

من بداية السطر، في واحدة من أول عمودين، هناك رقم  مكون من 3-5 . هذا هو ال PID.  يتم تمييز ال  PID  من 14345.

الآن عليك أن تعرف ما هو PID، ويمكنك استخدام أ مر kill لجلب ال Tunnel لإسفل. استخدم PID الخاص بك عندما تنهي العملية.

Screenshot_2016-09-02-00-39-44-1

الآن، إذا كنت ترغب في أتمتة عملية الاتصال، انتقل إلى الخطوة 4

إغلاق ال Tunnel سيوقف قدرة Firefox  للتصفح عبر ال proxy .

أغلق نافذة PuTTY  الذي استخدمتها لإنشاء ال Tunnel . هذا كل ما في الأمر !

في نظام التشغيل Windows ليس هناك طريقة سهلة لأتمتة عملية الاتصال، ولكن كل من PuTTY  و Firefox  يمكنهما حفظ الإعدادات التي قمت بإدخالها سابقا، لذلك قم فقط  بفتح الاتصالات مجدداً  لاستخدام ال Tunnel  مرة أخرى.

 

 إنشاء اختصارات للاستخدام المتكرر

لأنظمة OS X أو Linux  يمكننا أن نضع  إسما مستعارا أو إنشاء برنامج نصي لينشئ ال Tunnel لنا بسرعة . وفيما يلي طريقتين لأتمتة عملية ال Tunnel .

ملاحظة: هذه الطرق المختصرة على حد سواء تتطلب مصادقة مفتاحي passwordless / passphraseless SSH  إلى الخادم!

 

Clickable BASH Script

إذا كنت تريد ايقونة لتنقر عليها نقرا مزدوجا ويبدأ ال Tunnel فقط، بإمكانك أن تنشئ BASH script للقيام بهذه المهمة.

يمكننا أن نعد ال script  لينشئ ال Tunnel   ويشغل Firefox ، على الرغم من أنك  لا تزال بحاجة إلى إضافة إعدادات  proxy يدويا في Firefox  لأول مرة.

في  OS X، ال Firefox binary الذي يمكننا تشغيله من سطر الأوامر هو insidefirefox.app. لنفترض أن التطبيق في مجلد التطبيقات،  سيتم العثور على  binary  في

 /Applications/Firefox.app/Contents/MacOS/firefox

في  أنظمة Linux ، إذا قمت بتثبيت Firefox  عن طريق ال repo أو أنه  مثبت مسبقا، إذا فإن  موقعه ينبغي ان يكون في

 usr/bin/Firefox/.

يمكنك دائما استخدام أمر which firefox  لمعرفة أين المسار على النظام الخاص بك.

في البرنامج النصي التالي استبدال الطريق الى Firefox  بطريق مناسب للنظام الخاص بك.

باستخدام محرر نصوص مثل nano أنشئ  ملفا جديداً :

Screenshot_2016-09-02-13-28-36-1

أضف الأسطر التالية:

Screenshot_2016-09-02-13-28-36-2

  • استبدل 8123 مع رقم المنفذ المطلوب (يجب أن يطابق ما وضعته في فايرفوكس)
  • استبدل sammy@example.com مع اسم المستخدم SSH الخاص بك عند اسم المضيف أو IP
  • استبدل     /Applications/Firefox.app/Contents/MacOS/firefox مع مسار برنامج Firefox

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

Screenshot_2016-09-02-14-33-57-1

على OS X، قد تضطر إلى إجراء خطوة إضافية لتخبر نظام التشغيل Mac OS X أن .shfile يجب أن  ينفذ كبرنامج وعدم فتحه في المحرر.

للقيام بذلك، انقر بالزر الأيمن على ملف socks5.sh وحدد الحصول على معلومات.

حدد القسم  Open with : وإذا كان مثلث الكشف لا يشير إلى الأسفل ، اضغط عليه حتى تتمكن من رؤية القائمة المنسدلة. قد يتم تعيين رمز X كتطبيق افتراضي.

8TJ7dvX

قم بتغييره إلى Terminal.app. إذا لم يتم سرد Terminal.app، اختر other ، ثم انتقل إلى Application > Utilities > Terminal.app.

لفتح SOCKS proxy  الخاص بك الآن، فقط انقر مرتين على ملف socks.sh.

(بعد تنفيذ النص فإنه لن يتأسس بكلمة مرور، لذلك فإنه سيفشل دون سابق  إذا كنت قد  قمت مسبقاً  بإعداد مفتاح SSH الخاص بك للمطالبة بعبارة مرور).

سيقوم البرنامج النصي بفتح نافذة طرفية، إبدأ اتصال SSH، وشغل Firefox  . لا تتردد في إغلاق النافذة الطرفية. طالما أبقيت إعدادات proxy  في Firefox ، يمكنك البدء في التصفح عبر اتصالك آمن .

 

Command-Line Alias:


إذا وجدت نفسك في سطر الأوامر في كثير من الأحيان وتريد جلب ال Tunnel ، يمكنك إنشاء اسم BASH مستعار  للقيام بهذه المهمة عنك او بما يسمى alias

الجزء الاصعب من إنشاء  alias هو اختيار مكان حفظه في الجهاز.

توزيعات Linux  المختلفة و اصدارات OS X تحفظ alias في أماكن مختلفة. أفضل شيء  هو البحث عن أحد الملفات التالية  لنرى أين يجري حالياً  حفظ الأسماء الأخرى. وتشمل الاحتمالات

  • ~/.bashrc
  • ~/.bash_aliases
  • ~/.bash_profile
  • ~/.profile

بمجرد العثور على الملف الصحيح، أضف alias الخاص بك  في نهاية الملف

Screenshot_2016-09-02-15-30-24-1

  • استبدل 8123 مع رقم المنفذ المطلوب (يجب أن يطابق ما وضعته في فايرفوكس)
  • استبدل sammy@example.com مع اسم المستخدم SSH الخاص بك عند اسم المضيف أو IP
  • استبدل     /Applications/Firefox.app/Contents/MacOS/firefox مع طريق Firefox الثنائي

يتم تحميل الأسماء المستعارة  لخاص بك فقط عند بدء تشغيل shell جديدة ، لذلك أغلق الجلسة الطرفية  وأبدأ واحدة جديدة

الآن عند كتابة:

Screenshot_2016-09-02-15-39-40-1

هذا الاسم المستعار سيقوم بإعداد الTunnel الخاص بك، ثم يشغل Firefox  لك ومن ثم يعود بك  إلى موجه الأوامر.

تأكد ان Firefox  لا يزال مضبوطا لإستخدام ال proxy . يمكنك الآن تصفح بآمان!

 

استكشاف الأخطاء وإصلاحها: الحصول عليها من خلال جدران الحماية “Firewalls” :


إذا كان إتصالك يعمل ، فكل شيء  على ما يرام، ويمكنك الذهاب والتوقف عن القراءة.

ومع ذلك، إذا كنت قد اكتشفت أنه لا يمكنك إجراء اتصال SSH  بسبب تقييد جدار الحماية، لذلك فإنه من المحتمل أن المنفذ 22، المطلوب لإنشاء Tunnel  قد تم حظره.

إذا كان يمكنك التحكم في إعدادات ملقم  SSH proxy  (مع الوصول السريع لDigitalOcean Droplet ، ستتمكن من القيام بذلك)، يمكنك تعيين SSH للاستماع على منفذ آخر غير 22.

أي منفذ يمكنك استخدامه ولم يتم تعطيله؟

بصرف النظر عن خطة المشكوك فيها لتشغيل مسح المنفذ  بأداة مثل ShieldsUP! (مشكوك به حيث ان  الشبكة المحلية قد تعد هذا بمثابة هجوم)، فمن الأفضل  محاولة المنافذ التي عادة ما تترك  مفتوحة.

المنافذ التي غالبا ما تكون مفتوحة تشمل 80 (general Web traffic ) و 443 (SSL Web traffic ).

إذا كان خادم SSH الخاص بك لا يخدم المحتوى على شبكة الإنترنت، يمكن أن نخبر SSH ليستخدم واحد من هذه المنافذ على شبكة الإنترنت للاتصال عبره بدلا من المنفذ الافتراضي 22. 443 هو الخيار الافضل حيث من المتوقع أن حركة المرور مشفرة على هذا المنفذ، و حركة مرور SSH الخاصة بنا سيتم تشفيرها .

من موقع غير محمي بالجدار الناري، SSH في الDigitalOcean Droplet  المستخدم في proxy . (أو استخدام المدمج في الوحدة من لوحة التحكم، ولكن قد لا تحتاج إلى القيام بذلك إذا كنت خائفا انه تتم مراقبة حركتك المرورية على الشبكة .)

تحرير  إعدادات خادم SSH :

Screenshot_2016-09-02-16-37-33-1

ابحث عن سطر port 22

يمكننا إما استبدال 22 تماما (والذي يعد تقنية جيدة  لتصلب  SSH  على أي حال)، أو إضافة المنفذ الثاني لSSH للاستماع.

وسوف تختار أن يكون SSH المستمع على منافذ متعددة، لذلك سنقوم بإضافة خط جديد تحت port  22 الذي يقرأ port 443. وفيما يلي مثال:

Screenshot_2016-09-02-16-44-51-1

أعد  تشغيل SSH لتحميل تكوين SSH  الذي حررته للتو .

اعتمادا على التوزيع، فإن اسم خادم SSH  قد يختلف، لكن من المرجح أن تكون SSH  أوSSHD  . إذا كان أحدهما  لا يعمل جرب الآخر. 

Screenshot_2016-09-02-16-58-13-2

للتحقق من أن منفذ SSH  الجديد  يعمل، افتح  New shell  (لا تغلق الحالي حتى الآن، فقط في حال علقت من غير قصد  ) أثناء  استخدام SSh للمنفذ الجديد.

Screenshot_2016-09-02-16-58-13-1

إذا كنت ناجحا، يمكنك تسجيل الخروج الآن  من كلا ال shells  وفتح SSH tunnel  باستخدام المنفذ الجديد

 

  ssh -D 8123 -f -C -q -N sammy @ example. com -p 443

 

سوف تكون إعدادات Firefox  بالضبط نفسها لأنها لا تعتمد على منفذ SSH، تعتمد على منفذ الTunnel اعلاه(8123) .

 

الخاتمة:


افتح  SOCKS 5 tunnel  لتصفح  آمن عبر  SSH tunnel   كلما كنت بحاجة إلى وسيلة سريعة للوصول إلى شبكة الإنترنت في مأمن من المتطفلين.

 

ترجمة لمقال : How To Route Web Traffic Securely Without a VPN Using a SOCKS Tunnel لصاحبها Michael Holley

اقرأ ايضا مقال : هل نحن حقاً بحاجة الى استخدام اتصال VPN