مقدمة
في مرحلة ما، قد تجد نفسك على شبكة غير آمنة أو ذات جدار حماية مُقيّد للغاية، وترغب في التأكد من عدم مراقبة أي شخص لبياناتك. أحد الحلول هو إعداد شبكة افتراضية خاصة (VPN) على أنظمة أوبونتو 22.04 / 20.04 / 18.04، ولكن العديد من شبكات VPN تتطلب برنامج عميل خاص على جهازك قد لا تملك الإذن لتثبيته. ومع ذلك، إذا كان كل ما تحتاجه هو تصفح الويب بأمان، فهناك بديل سريع ومجاني ومفيد: نفق بروكسي SOCKS 5.
بروكسي SOCKS هو نفق SSH مشفر، تُوجّه التطبيقات المُهيأة حركة مرورها عبره، ثم يُعيد البروكسي توجيهها إلى الإنترنت العام من جهة الخادم. بخلاف VPN، يجب تهيئة بروكسي SOCKS لكل تطبيق على حدة على جهاز العميل، ولكن طالما أن التطبيق قادر على استخدام بروكسي SOCKS، يُمكنك تشغيل التطبيقات دون الحاجة إلى أي برنامج عميل مُتخصص. أما من جهة الخادم، فكل ما تحتاجه هو تهيئة SSH.
في هذا البرنامج التعليمي، ستستخدم خادمًا يعمل بنظام أوبونتو 22.04 (مع العلم أن أي توزيعة لينكس يمكنك الوصول إليها عبر SSH ستعمل)، ومتصفح فايرفوكس كتطبيق عميل. بنهاية هذا البرنامج التعليمي، ستتمكن من تصفح مواقع الويب عبر نفق SSH مشفر.
المتطلبات الأساسية
- خادم Linux يعمل بنظام Ubuntu (تعمل التوزيعات الأخرى) مع المستخدم
سودووالوصول عبر SSH. - برنامج لتكوينه باستخدام وكيل SOCKS، مثل متصفح الويب Firefox.
- بالنسبة لمستخدمي Windows، ستحتاج أيضًا إلى أداة PuTTY أو نظام Windows الفرعي لنظام Linux (WSL).
يتم استخدام PuTTY لإعداد نفق وكيل لمستخدمي Windows. يتمتع مستخدمو macOS أو Linux بأدوات مثبتة مسبقًا لإعداد النفق.
الخطوة 1 (macOS/Linux) – إعداد النفق
على جهاز الكمبيوتر المحلي، إذا لم تكن قد أنشأت Droplet باستخدامه، أنشئ مفتاح SSH. بعد إنشاء المفتاح، تأكد من إضافته إلى ملف "authorized_keys" في Droplet SSH. ثم افتح تطبيق طرفية لإنشاء نفق SSH مع تفعيل بروكسي SOCKS.
ابدأ النفق بهذا الأمر:
ssh -i ~/.ssh/id_rsa -D 1337 -f -C -q -N sammy@your_domainشرح الدليل
-أنا:مسار مفتاح SSH للاتصال بالمضيف-د: يخبر SSH أننا نريد نفق SOCKS على رقم المنفذ المحدد (يمكنك اختيار رقم بين 1025 و65536)-ف:نقل العملية إلى الخلفية-ج:يضغط البيانات قبل الإرسال-q:يستخدم الوضع الصامت-ن:يخبر SSH أنه لن يتم إرسال أي أوامر بعد إغلاق النفق.
تأكد من تشغيل النفق باستخدام هذا الأمر:
ps aux | grep sshسوف ترى سطرًا مثل هذا في الإخراج:
Output
sammy 14345 0.0 0.0 2462228 452 ?? Ss 6:43AM 0:00.00 ssh -i ~/.ssh/id_rsa -D 1337 -f -C -q -N sammy@your_domain
يمكنك الخروج من تطبيق الطرفية وسيبقى النفق نشطًا. هذا لأننا استخدمنا الوسيطة -f، التي تُبقي جلسة SSH في الخلفية.
الخطوة 1 (Windows) – إعداد النفق
افتح PuTTY. إذا لم تُثبّته بعد، نزّل PuTTY واحفظه في المكان الذي تريده. لا يتطلب PuTTY صلاحيات المسؤول لتثبيته. فقط .إملف تنفيذى تنزيل وتشغيل.
لإعداد نفق، اتبع الخطوات التالية:
من قسم الجلسة، أضف اسم المضيف (أو عنوان IP) لخادمك ومنفذ SSH (عادةً 22).
على اليسار، انتقل إلى: الاتصال > SSH > الأنفاق
أدخل أي رقم منفذ مصدر بين 1025 و65536، مثل 1337.
حدد زر الراديو الديناميكي.
انقر فوق الزر "إضافة".
العودة إلى الجلسة على اليسار.
أضف اسمًا في حقل الجلسات المحفوظة وانقر على زر الحفظ.
الآن انقر فوق زر "فتح" لإنشاء الاتصال.
اسم المستخدم سودو وأدخل كلمة مرور الخادم الخاص بك لتسجيل الدخول
الخطوة 2 – تكوين Firefox لاستخدام النفق
الآن وقد أصبح لديك نفق SSH، حان الوقت لتكوين فايرفوكس لاستخدامه. تذكر أنه لكي يعمل نفق SOCKS 5، يجب استخدام تطبيق محلي قادر على تشغيل النفق. يتميز فايرفوكس بالإمكانات التالية:
هذه الخطوة هي نفسها بالنسبة لأنظمة Windows وmacOS وLinux.
تأكد من معرفة رقم المنفذ الذي استخدمته في أمر SSH. في أمثلتنا، استخدمنا 1337.
(تم تنفيذ الخطوات التالية باستخدام إصدار Firefox 80، ولكن من المفترض أن تعمل على الإصدارات الأخرى، على الرغم من أن موقع الخيارات قد يختلف.)
افتح فايرفوكس.
- في الزاوية اليمنى العليا، انقر على أيقونة الهامبرغر للوصول إلى قائمة Firefox.
- انقر فوق عنصر القائمة "التفضيلات" أو "الخيارات".
- قم بالتمرير إلى الأسفل وحدد زر الإعدادات… في قسم إعدادات الشبكة.
- تحت عنوان "تكوين وصول الوكيل إلى الإنترنت"، حدد تكوين الوكيل يدويًا.
- بالنسبة إلى SOCKS Host، أدخل localhost أو 127.0.0.1 وبالنسبة إلى Port، استخدم المنفذ المخصص المحدد في النفق الخاص بك، 1337.
- بالقرب من الأسفل، حدد المربع الخاص بـ "وكيل DNS عند استخدام SOCKS v5"
- انقر فوق زر موافق لحفظ وإغلاق إعداداتك.
الآن، افتح علامة تبويب أخرى في فايرفوكس وابدأ بتصفح الويب. ستكون جاهزًا للتصفح الآمن عبر نفق SSH. البيانات التي تتلقاها من الموقع مشفرة. بالإضافة إلى ذلك، بما أنك فعّلت خيار Proxy DNS، فسيتم تشفير عمليات بحث DNS أيضًا، مما يمنع مزود خدمة الإنترنت من رؤية ما تشاهده أو مصدره.
للتحقق من استخدامك لخادم وكيل، ارجع إلى إعدادات الشبكة في فايرفوكس وأدخل رقم منفذ مختلفًا واحفظ الإعدادات. عند محاولة تصفح الإنترنت، ستظهر لك رسالة خطأ: "خادم الوكيل يرفض الاتصالات". هذا يُثبت أن فايرفوكس يستخدم وكيلًا وليس الاتصال الافتراضي فقط. كبديل، يمكنك زيارة موقع IP عام مثل ipecho.net، وسيظهر لك عنوان IP الذي سيُرجعه هو عنوان IP الخاص بخادم SSH Droplet، لأنه يعمل الآن كخادم وكيل.
الخطوة 3 – إعادة تعيين الوكيل في Firefox
بعد الانتهاء من الحفاظ على خصوصية نفق SSH، ارجع إلى إعدادات بروكسي الشبكة في فايرفوكس. انقر على زر "استخدام إعدادات بروكسي النظام" ثم انقر على "موافق". الآن، بما أن فايرفوكس لم يعد يستخدم نفق SOCKS، يمكننا إيقافه أيضًا. يمكنك ترك النفق مفتوحًا لتمكين البروكسي وتعطيله في فايرفوكس، ولكن إذا تركت النفق خاملًا لفترة طويلة، فقد يُغلق تلقائيًا.
إغلاق النفق (macOS/Linux)
تم إرسال النفق الذي أنشأناه سابقًا على جهازنا المحلي إلى الخلفية، لذا فإن إغلاق نافذة الطرفية التي استخدمتها لفتح النفق لن يُنهيه. لإنهاء النفق، نحتاج إلى تحديد مُعرِّف العملية (PID) باستخدام الأمر ps، ثم استخدام الأمر قتل دعونا ننهي هذه العملية.
دعنا نبحث عن جميع عمليات ssh النشطة على جهازنا:
ps aux |grep sshابحث عن السطر الذي يُشبه الأمر الذي أدخلته سابقًا لإنشاء النفق. إليك مثال على الناتج:
Output
sammy 14345 0.0 0.0 2462228 452 ?? Ss 6:43AM 0:00.00 ssh -i ~/.ssh/id_rsa -D 1337 -f -C -q -N sammy@your_domainمن بداية السطر، في أحد العمودين الأولين، يوجد رقم مكون من 3 إلى 5 أرقام. هذا هو مُعرِّف العملية (PID). مُعرِّف العملية للمثال 14345 مُحدَّد هنا.
الآن بعد أن عرفتَ مُعرِّف العملية (PID)، يمكنك استخدام أمر "kill" لإغلاق النفق. استخدم مُعرِّف العملية (PID) عند إيقاف العملية:
kill 14345إغلاق النفق (ويندوز)
أغلق نافذة PuTTY التي استخدمتها لإنشاء النفق. هذا كل شيء.
الخطوة 4 (macOS/Linux) – إنشاء اختصار للاستخدام المتكرر
بالنسبة لأنظمة macOS أو Linux، يمكننا إنشاء اسم مستعار أو نص برمجي لإنشاء النفق بسرعة. هناك طريقتان لأتمتة عملية إنشاء النفق:
تتطلب كلتا طريقتي الاختصار هذه مصادقة مفتاح SSH بدون كلمة مرور/عبارة مرور للخادم.
نص BASH قابل للنقر
إذا كنت ترغب في أيقونة تُشغّل النفق عند النقر عليها، يُمكننا إنشاء نص برمجي BASH صغير للقيام بهذه المهمة. سيُشغّل النص البرمجي النفق ثم يُشغّل فايرفوكس، مع العلم أنه لا يزال يتعين عليك إضافة إعدادات الوكيل يدويًا في فايرفوكس في المرة الأولى.
في نظام ماك، ملف فايرفوكس الثنائي الذي يُمكن تشغيله من سطر الأوامر موجود داخل Firefox.app. بافتراض أن التطبيق موجود في مجلد التطبيقات، يكون الملف الثنائي موجودًا في /التطبيقات/Firefox.app/المحتويات/MacOS/firefox لقد تم العثور عليه.
في أنظمة Linux، إذا قمت بتثبيت Firefox من مستودع أو تم تثبيته بالفعل، فيجب أن يكون موقعه /usr/bin/فايرفوكس إذا لم يكن Firefox موجودًا في الموقع القياسي، فيمكنك دائمًا استخدام الأمر find firefox لمعرفة مكان وجود Firefox على نظامك.
في هذا البرنامج النصي، استبدل مسار فايرفوكس بالمسار المناسب لنظامك. قد تحتاج أيضًا إلى تعديل سطر SSH ليعكس الأمر الناجح الذي استخدمته سابقًا لإنشاء نفق.
استخدام محرر النصوص
إنشاء ملف جديد باستخدام nano:
nano ~/socks.shأضف الأسطر التالية:
#!/bin/bash -e
ssh -i ~/.ssh/id_rsa -D 1337 -f -C -q -N sammy@`your_domain`
/Applications/Firefox.app/Contents/MacOS/firefox &
- استبدل رقم المنفذ بالرقم المطلوب.
1337(يجب أن يتطابق مع ما قمت بتعيينه في Firefox) - استبدل مستخدم SSH باسم المضيف أو عنوان IP الخاص بك
سامي@نطاقكيفعل /التطبيقات/Firefox.app/المحتويات/MacOS/firefoxاستبدله بمسار Firefox الثنائي لنظامك.
احفظ البرنامج النصي. بالنسبة إلى nano، اكتب CONTROL + o، ثم للخروج، اكتب CONTROL + x.
اجعل البرنامج النصي قابلاً للتنفيذ ليتم تشغيله عند النقر المزدوج عليه. من سطر الأوامر، استخدم الأمر chmod لإضافة أذونات التنفيذ:
chmod +x /path/to/socks.shعلى نظام ماك، قد تحتاج إلى اتخاذ خطوة إضافية لإعلام ماك بأنه يجب تشغيل ملف .sh كبرنامج وليس فتحه في محرر نصوص. للقيام بذلك، انقر بزر الماوس الأيمن على ملف socks.sh واختر "الحصول على معلومات".
ابحث عن قسم "فتح باستخدام:"، وإذا لم يكن مثلث الكشف متجهًا للأسفل، فانقر عليه لعرض القائمة المنسدلة. قد يكون Xcode هو التطبيق الافتراضي.
غيّره إلى Terminal.app. إذا لم يكن Terminal.app مدرجًا، فاختر "أخرى" ثم انتقل إلى التطبيقات > الأدوات المساعدة > Terminal.app (قد تحتاج إلى تغيير خيار "نشط" من "التطبيقات الموصى بها" إلى "جميع التطبيقات" في القائمة المنسدلة).
لفتح وكيل SOCKS الخاص بك، انقر فوق الملف جوارب.sh انقر نقرًا مزدوجًا. سيفتح البرنامج النصي نافذة طرفية، ويبدأ اتصال SSH، ثم يُشغّل فايرفوكس. من الآمن إغلاق نافذة الطرفية الآن. طالما أنك حافظت على إعدادات الوكيل في فايرفوكس، يمكنك بدء التصفح عبر اتصالك الآمن:
سيساعدك هذا البرنامج النصي على إيقاف الوكيل بسرعة، ولكنك ستظل بحاجة إلى اتباع الخطوات اليدوية المذكورة أعلاه للعثور على عملية ssh وإنهائها عند الانتهاء.
اسم مستعار لسطر الأوامر
إذا كنت تستخدم سطر الأوامر باستمرار وترغب في فتح النفق، يمكنك إنشاء اسم مستعار لسطر الأوامر ليقوم بالعمل نيابةً عنك. أصعب جزء في إنشاء اسم مستعار هو تحديد مكان تخزين أمر الاسم المستعار.
تُخزّن توزيعات لينكس المختلفة وإصدارات ماك أو إس الأسماء المستعارة في مواقع مختلفة. أفضل خيار لك هو البحث عن أحد الملفات التالية: الاسم المستعار ابحث لمعرفة أماكن تخزين الأسماء المستعارة الأخرى حاليًا. تتضمن الميزات:
- ~/.bashrc
- ~/.zshrc
- ~/.bash_aliases
- ~/.bash_profile
- ~/.profile
بعد العثور على الملف الصحيح، أضف الاسم المستعار التالي إلى أي ملف لديك أو أضفه إلى نهايته. في المثال أدناه، نستخدم الاسم المستعار "firesox" لتمثيل نفق SOCKS، ولكن يمكنك استخدام أي كلمة تريدها كاسم مستعار:
alias firesox='ssh -i ~/.ssh/id_rsa -D 1337 -f -C -q -N sammy@your_domain && /Applications/Firefox.app/Contents/MacOS/firefox &'- استبدل 1337 برقم المنفذ المطلوب (يجب أن يتطابق مع ما وضعته في Firefox)
- استبدل sammy@your_domain باسم المضيف أو عنوان IP الخاص بمستخدم SSH الخاص بك.
- استبدل /Applications/Firefox.app/Contents/MacOS/firefox بالمسار إلى الملف الثنائي الخاص بـ Firefox.
سيتم تحميل اسمك المستعار فقط عند بدء تشغيل واجهة جديدة، لذا أغلق جلسة الطرفية وابدأ واجهة جديدة. الآن، عندما تكتب:
firesoxسيؤدي هذا إلى إعداد اسم النفق البديل، ثم تشغيل فايرفوكس والعودة إلى سطر الأوامر. تأكد من أن فايرفوكس لا يزال مُعَيَّنًا لاستخدام الوكيل. يمكنك الآن التصفح بأمان.
الخطوة 5 (اختياري) - استكشاف الأخطاء وإصلاحها: تجاوز جدران الحماية
إذا كان اتصالك يعمل، فأنت جاهز ويمكنك التوقف عن القراءة. مع ذلك، إذا وجدتَ أنه لا يمكنك إنشاء اتصال SSH بسبب جدار حماية مُقيّد، فمن المُرجّح أن المنفذ 22، المطلوب لإنشاء النفق، مُحظور. إذا كنتَ قادرًا على التحكم في إعدادات خادم وكيل SSH (وهو ما يُمكنك فعله باستخدام صلاحيات الجذر لـ DigitalOcean Droplet)، يُمكنك تكوين SSH للاستماع على منفذ آخر غير 22.
ما هو المنفذ الذي يمكنك استخدامه والذي ليس محظورًا؟
تتضمن المنافذ التي تكون مفتوحة في أغلب الأحيان 80 (حركة مرور الويب العامة) و443 (TLS، حركة مرور الويب الآمنة).
إذا لم يكن خادم SSH لديك يُقدّم محتوى ويب، يُمكننا توجيه SSH لاستخدام أحد منافذ الويب هذه للاتصال بدلاً من المنفذ الافتراضي 22. يُعدّ المنفذ 443 الخيار الأمثل، إذ يُتوقع تشفير حركة المرور عليه. سيتم تشفير حركة مرور SSH.
من موقع بدون جدار حماية، قم بتسجيل الدخول عبر SSH إلى DigitalOcean Droplet الذي تستخدمه للتوكيل، أو استخدم وحدة التحكم المضمنة من لوحة التحكم الخاصة بـ Digital Ocean.
تعديل إعدادات خادم SSH:
sudo nano /etc/ssh/sshd_configابحث عن الخط Port 22.
يمكننا استبدال "22" كليًا أو إضافة منفذ ثانٍ ليستمع إليه SSH. نختار أن يستمع SSH على منافذ متعددة، لذا نضيف سطرًا جديدًا أسفل المنفذ 22 يحمل اسم المنفذ 443. إليك مثال:
. . . Port 22 Port 443 . . .
أعد تشغيل SSH لإعادة تحميل إعدادات SSH التي عدّلتها للتو. قد يختلف اسم خادم SSH الشبح، حسب توزيعتك، ولكنه غالبًا ما يكون ssh أو sshd. إذا لم ينجح أحدهما، فجرّب الآخر:
sudo service ssh restartللتحقق من أن منفذ SSH الجديد يعمل، افتح غلافًا جديدًا (لا تغلق الغلاف الحالي بعد، فقط في حالة قمت بإغلاق نفسك عن طريق الخطأ) وافتح SSH باستخدام المنفذ الجديد:
ssh sammy@your_domain -p 443
إذا نجحت، فيمكنك الآن الخروج من كلا القوقعتين وفتح نفق SSH باستخدام المنفذ الجديد:
ssh -i ~/.ssh/id_rsa -D 1337 -f -C -q -N sammy@your_domain -p 443ستكون إعدادات Firefox هي نفسها حيث أنها لا تعتمد على منفذ SSH، فقط على منفذ النفق (1337 أعلاه).
نتيجة
في عصرنا الحديث، تتوفر طرق عديدة للتصفح الآمن عند استخدام شبكة قد تكون معادية، مثل شبكة واي فاي عامة في مقهى. في معظم الحالات، إذا كنت تستطيع استخدام شبكة افتراضية خاصة (VPN) لتأمين وحماية جميع بياناتك، فمن الأفضل استخدامها. لكن وجود نفق SOCKS يمنحك الأمان الذي تحتاجه عند تصفح الويب عندما لا يمكنك استخدام VPN أو الوثوق به. يتميز نفق SOCKS بسهولة إعداده واستخدامه، ويمكنك التحكم فيه بشكل كامل. إنه خيار رائع للتصفح الآمن.












