ذكري المظهر

كيفية إعداد نفق ssh (ميناء الشحن)

حدود سلوى البرية التي تربط السعودية بقطر قد تُلغى

حدود سلوى البرية التي تربط السعودية بقطر قد تُلغى

جدول المحتويات:

Anonim

إن SSH tunneling أو SSH forward forwarding هي طريقة لإنشاء اتصال SSH مشفر بين العميل وجهاز الخادم الذي يمكن من خلاله نقل منافذ الخدمات.

يعد إعادة توجيه SSH مفيدًا لنقل بيانات الشبكة الخاصة بالخدمات التي تستخدم بروتوكولًا غير مشفر ، مثل VNC أو FTP ، أو الوصول إلى المحتوى المقيد جغرافيًا أو تجاوز جدران الحماية الوسيطة. بشكل أساسي ، يمكنك إعادة توجيه أي منفذ TCP ونفق حركة المرور عبر اتصال SSH آمن.

هناك ثلاثة أنواع من إعادة توجيه منفذ SSH:

  • ميناء الشحن المحلي. - توجيه اتصال من مضيف العميل إلى مضيف خادم SSH ثم إلى منفذ مضيف الوجهة. إعادة توجيه منفذ الشحن. - إعادة توجيه منفذ من مضيف الخادم إلى مضيف العميل ثم إلى منفذ مضيف الوجهة. إعادة توجيه المنفذ الديناميكي. - ينشئ خادم وكيل SOCKS والذي يسمح بالتواصل عبر مجموعة من المنافذ.

، سنتحدث عن كيفية إعداد أنفاق SSH المشفرة المحلية والبعيدة والحيوية.

ميناء الشحن المحلي

تتيح لك ميزة "إعادة توجيه المنفذ المحلي" إعادة توجيه منفذ على الجهاز (العميل ssh) المحلي إلى منفذ على الجهاز البعيد (خادم ssh) ، والذي يتم توجيهه بعد ذلك إلى منفذ على الجهاز الوجهة.

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

يتم استخدام إعادة توجيه المنفذ المحلي في الغالب للاتصال بخدمة بعيدة على شبكة داخلية مثل قاعدة بيانات أو خادم VNC.

في Linux و macOS وأنظمة Unix الأخرى لإنشاء إعادة توجيه منفذ محلي ، قم بتمرير خيار -L إلى عميل ssh :

ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

الخيارات المستخدمة هي كما يلي:

  • LOCAL_PORT - رقم الجهاز المحلي ورقم المنفذ. عندما يتم حذف LOCAL_IP ، يربط العميل ssh على المضيف LOCAL_IP . DESTINATION:DESTINATION_PORT - عنوان IP أو اسم المضيف ومنفذ الجهاز الوجهة. SERVER_IP - عنوان IP الخاص بالمستخدم وخادم SSH البعيد.

يمكنك استخدام أي رقم منفذ أكبر من 1024 كـ LOCAL_PORT . تعد أرقام المنافذ التي تقل عن 1024 مميزة ويمكن استخدامها فقط عن طريق الجذر. إذا كان خادم SSH يستمع إلى منفذ آخر غير 22 (الافتراضي) ، فاستخدم الخيار -p .

يجب أن يكون اسم المضيف الوجهة قابلاً للحل من خادم SSH.

لنفترض أن لديك خادم قاعدة بيانات MySQL يعمل على الجهاز db001.host على شبكة داخلية (خاصة) ، على المنفذ 3306 والذي يمكن الوصول إليه من الجهاز pub001.host وتريد الاتصال باستخدام عميل mysql الخاص بالجهاز المحلي إلى خادم قاعدة البيانات. للقيام بذلك ، يمكنك إعادة توجيه الاتصال مثل:

ssh -L 3336:db001.host:3306 [email protected]

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

الآن إذا قمت db001.host:3306 عميل قاعدة بيانات الجهاز المحلي الخاص بك إلى 127.0.0.1:3336 ، فسيتم إعادة توجيه الاتصال إلى خادم MySQL db001.host:3306 عبر الجهاز pub001.host الذي سيعمل pub001.host وسيط.

يمكنك توجيه منافذ متعددة إلى وجهات متعددة في أمر ssh واحد. على سبيل المثال ، لديك خادم قاعدة بيانات MySQL آخر يعمل على الجهاز db002.host وتريد الاتصال بكلا الخادمين من عميلك المحلي الذي تقوم بتشغيله:

ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]

للاتصال بالخادم الثاني ، يمكنك استخدام 127.0.0.1:3337 .

عندما يكون المضيف الوجهة هو نفسه خادم SSH بدلاً من تحديد عنوان IP للمضيف الوجهة أو اسم المضيف ، يمكنك استخدام localhost .

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

ssh -L 5901:127.0.0.1:5901 -N -f [email protected]

يخبر الخيار -f الأمر ssh بالعمل في الخلفية و - عدم تنفيذ أمر بعيد. نحن نستخدم localhost لأن VNC وخادم SSH يعملان على نفس المضيف.

ميناء الشحن البعيد

إعادة توجيه المنفذ البعيد هي عكس إعادة توجيه المنفذ المحلي. يسمح لك بإعادة توجيه منفذ على الجهاز البعيد (خادم ssh) إلى منفذ على الجهاز (العميل ssh) المحلي ، والذي يتم توجيهه بعد ذلك إلى منفذ على الجهاز الوجهة.

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

في Linux و macOS وأنظمة Unix الأخرى لإنشاء إعادة توجيه المنافذ البعيدة ، قم بتمرير خيار -R إلى عميل ssh :

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

الخيارات المستخدمة هي كما يلي:

  • REMOTE_PORT - IP ورقم المنفذ على خادم SSH البعيد. يعني REMOTE الفارغ أن خادم SSH البعيد سوف يربط على جميع الواجهات. DESTINATION:DESTINATION_PORT - عنوان IP أو اسم المضيف ومنفذ الجهاز الوجهة. SERVER_IP - عنوان IP الخاص بالمستخدم وخادم SSH البعيد.

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

دعنا نفترض أنك تقوم بتطوير تطبيق ويب على جهازك المحلي وتريد عرض معاينة لزميلك المطور. ليس لديك عنوان IP عام حتى لا يتمكن المطور الآخر من الوصول إلى التطبيق عبر الإنترنت.

ssh -L 8080:127.0.0.1:3000 -N -f [email protected]

الأمر أعلاه سيجعل خادم ssh للاستماع على المنفذ 8080 ونفق كل حركة المرور من هذا المنفذ إلى جهازك المحلي على المنفذ 3000 .

الآن ، يمكن the_ssh_server_ip:8080 المطور كتابة the_ssh_server_ip:8080 في the_ssh_server_ip:8080 ومعاينة التطبيق الرائع الخاص بك.

ميناء الشحن الديناميكي

تتيح لك إعادة توجيه المنفذ الديناميكي إنشاء مأخذ توصيل على الجهاز المحلي (العميل ssh) الذي يعمل كخادم وكيل SOCKS. عندما يتصل عميل بهذا المنفذ ، يتم توجيه الاتصال إلى الجهاز البعيد (خادم ssh) ، والذي يتم توجيهه بعد ذلك إلى منفذ ديناميكي على الجهاز الوجهة.

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

في نظام Linux ، تقوم أنظمة macOS وأنظمة Unix الأخرى لإنشاء إعادة توجيه منفذ ديناميكي (SOCKS) بتمرير الخيار -D إلى عميل ssh :

ssh -D LOCAL_PORT SSH_SERVER

الخيارات المستخدمة هي كما يلي:

  • LOCAL_PORT - رقم الجهاز المحلي ورقم المنفذ. عندما يتم حذف LOCAL_IP ، يربط العميل ssh على المضيف LOCAL_IP . SERVER_IP - عنوان IP الخاص بالمستخدم وخادم SSH البعيد.

مثال نموذجي لإعادة توجيه المنفذ الديناميكي هو نفق حركة مرور مستعرض الويب من خلال خادم SSH.

سيقوم الأمر التالي بإنشاء نفق SOCKS على المنفذ 9090 :

ssh -D 9090 -N -f [email protected]

بمجرد إنشاء النفق ، يمكنك تكوين التطبيق الخاص بك لاستخدامه. تشرح هذه المقالة كيفية تكوين متصفح Firefox و Google Chrome لاستخدام بروكسي SOCKS.

يجب أن يتم تكوين إعادة توجيه المنفذ بشكل منفصل لكل تطبيق تريد أن تنفق حركة المرور عليه.

قم بإعداد SSH Tunneling في Windows

يمكن لمستخدمي Windows إنشاء أنفاق SSH باستخدام عميل PuTTY SSH. يمكنك تنزيل المعجون هنا.

  1. قم بتشغيل المعجون وأدخل عنوان IP لخادم SSH في حقل Host name (or IP address) .

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

    سيسمح لك إعداد مصادقة المفتاح العام بالاتصال بخادمك دون إدخال كلمة مرور.

استنتاج

لقد أوضحنا لك كيفية إعداد أنفاق SSH وإعادة توجيه حركة المرور من خلال اتصال SSH آمن. لسهولة الاستخدام ، يمكنك تحديد نفق SSH في ملف تهيئة SSH أو إنشاء اسم مستعار Bash سيقوم بإعداد نفق SSH.

سه الأمن