الصفحة الرئيسية » howto » كيفية استخدام نفق SSH للوصول إلى الخوادم المقيدة والتصفح بشكل آمن

    كيفية استخدام نفق SSH للوصول إلى الخوادم المقيدة والتصفح بشكل آمن

    يتصل عميل SSH بخادم Secure Shell ، والذي يسمح لك بتشغيل الأوامر الطرفية كما لو كنت جالسًا أمام كمبيوتر آخر. ولكن يسمح لك عميل SSH أيضًا "بتنفيد" منفذ بين نظامك المحلي وخادم SSH بعيد.

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

    يمكنك القيام بذلك مع سه الأمر المضمن على Linux و MacOS وأنظمة التشغيل الأخرى المشابهة لـ UNIX. على نظام التشغيل Windows ، الذي لا يتضمن أمر ssh مضمّن ، نوصي باستخدام الأداة المجانية PuTTY للاتصال بخوادم SSH. وهو يدعم نفق SSH أيضًا.

    إعادة توجيه المنافذ المحلية: جعل الموارد عن بعد في متناول النظام المحلي الخاص بك

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

    للقيام بذلك ، قم بإنشاء اتصال SSH مع خادم SSH وأطلب من العميل إعادة توجيه حركة المرور من منفذ معين من الكمبيوتر المحلي لديك ، على سبيل المثال ، المنفذ 1234 إلى عنوان خادم قاعدة البيانات ومنفذها على شبكة المكتب. لذا ، عند محاولة الوصول إلى خادم قاعدة البيانات في المنفذ 1234 ، جهاز الكمبيوتر الحالي الخاص بك ، "localhost" ، يتم نقل "المرور عبر الأنفاق" تلقائيًا عبر اتصال SSH وإرساله إلى خادم قاعدة البيانات. يجلس الخادم SSH في الوسط ، ويعيد توجيه حركة المرور ذهابًا وإيابًا. يمكنك استخدام أي سطر أوامر أو أداة رسومية للوصول إلى خادم قاعدة البيانات كما لو كان يعمل على الكمبيوتر المحلي لديك.

    لاستخدام إعادة التوجيه المحلية ، قم بالاتصال بخادم SSH بشكل طبيعي ، ولكن أيضًا قم بتزويد -L جدال. الصيغة هي:

    ssh -L local_port: remote_address: remote_port [email protected]

    على سبيل المثال ، لنفترض أن خادم قاعدة البيانات في مكتبك يقع على 192.168.1.111 على شبكة المكتب. لديك حق الوصول إلى خادم SSH للمكتب في ssh.youroffice.com , وحساب المستخدم الخاص بك على خادم SSH تمايل . في هذه الحالة ، سيبدو الأمر كما يلي:

    ssh -L 8888: 192.168.1.111: 1234 [email protected]

    بعد تشغيل هذا الأمر ، ستتمكن من الوصول إلى خادم قاعدة البيانات في منفذ 8888 على المضيف المحلي. لذا ، إذا كان خادم قاعدة البيانات يوفر الوصول إلى الويب ، فيمكنك توصيل http: // localhost: 8888 إلى متصفح الويب الخاص بك للوصول إليه. إذا كان لديك أداة سطر أوامر تحتاج إلى عنوان الشبكة لقاعدة البيانات ، فستوجهها إلى المضيف المحلي: 8888. سيتم نقل جميع حركة المرور المرسلة إلى المنفذ 8888 على جهاز الكمبيوتر الخاص بك إلى 192.168.1.111:1234 على شبكة مكتبك.

    إنه أمر مربك قليلاً إذا كنت ترغب في الاتصال بتطبيق خادم يعمل على نفس النظام مثل خادم SSH نفسه. على سبيل المثال ، لنفترض أن لديك خادم SSH يعمل بالمنفذ 22 على كمبيوتر المكتب ، ولكن لديك أيضًا خادم قاعدة بيانات يعمل بالمنفذ 1234 على نفس النظام في نفس العنوان. تريد الوصول إلى خادم قاعدة البيانات من المنزل ، ولكن النظام يقبل فقط اتصالات SSH على المنفذ 22 ولا يسمح جدار الحماية الخاص به بأية اتصالات خارجية أخرى.

    في هذه الحالة ، يمكنك تشغيل أمر مثل الأمر التالي:

    ssh -L 8888: localhost: 1234 [email protected]

    عند محاولة الوصول إلى خادم قاعدة البيانات في منفذ 8888 على جهاز الكمبيوتر الحالي ، سيتم إرسال حركة المرور عبر اتصال SSH. عندما يصل إلى النظام الذي يشغل خادم SSH ، سيرسله خادم SSH إلى المنفذ 1234 على "localhost" ، وهو نفس الكمبيوتر الذي يشغل خادم SSH نفسه. لذا فإن "localhost" في الأمر أعلاه يعني "localhost" من منظور الخادم البعيد.

    للقيام بذلك في تطبيق PuTTY على نظام التشغيل Windows ، حدد Connection> SSH> Tunnels. حدد الخيار "محلي". بالنسبة لـ "المنفذ المصدر" ، أدخل المنفذ المحلي. بالنسبة إلى "الوجهة" ، أدخل عنوان الوجهة والمنفذ في النموذج remote_address: remote_port.

    على سبيل المثال ، إذا أردت إعداد نفس نفق SSH كما هو موضح أعلاه ، فستدخل 8888 كميناء المصدر و مضيف محلي: 1234 كوجهة. انقر فوق "إضافة" بعد ذلك ثم انقر فوق "فتح" لفتح اتصال SSH. ستحتاج أيضًا إلى إدخال عنوان ومدخل خادم SSH نفسه على شاشة "الجلسة" الرئيسية قبل الاتصال ، بالطبع.

    إعادة توجيه المنفذ عن بُعد: اجعل الوصول إلى الموارد المحلية متاحًا في نظام بعيد

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

    بافتراض أنه يمكنك الوصول إلى خادم SSH عن بعد ، يمكنك الاتصال بخادم SSH واستخدام إعادة توجيه المنافذ عن بعد. سيخبر عميل SSH الخادم بإعادة توجيه منفذ معيّن ، مثل المنفذ 1234 - على خادم SSH إلى عنوان منفذ معين على جهاز الكمبيوتر الحالي أو الشبكة المحلية. عندما يصل شخص ما إلى المنفذ 1234 على خادم SSH ، فسيتم تلقائيًا "المرور عبر الأنفاق" عبر اتصال SSH. سيتمكن أي شخص لديه حق الوصول إلى خادم SSH من الوصول إلى خادم الويب الذي يعمل على جهاز الكمبيوتر الخاص بك. هذا هو بالفعل طريقة النفق من خلال الجدران النارية.

    لاستخدام إعادة التوجيه عن بعد ، استخدم سه الأمر مع -R جدال. الصيغة هي نفسها إلى حد كبير كما هو الحال مع إعادة التوجيه المحلية:

    ssh -R remote_port: local_address: local_port [email protected]

    لنفترض أنك تريد أن تجعل تطبيق خادم يستمع في المنفذ 1234 على جهاز الكمبيوتر المحلي المتوفر في منفذ 8888 على خادم SSH البعيد. عنوان خادم SSH هو ssh.youroffice.com واسم المستخدم الخاص بك على خادم SSH هو تمايل. قمت بتشغيل الأمر التالي:

    ssh -R 8888: localhost: 1234 [email protected]

    يمكن عندئذٍ أن يتصل شخص ما بخادم SSH في المنفذ 8888 وسيتم وصل هذا الاتصال إلى تطبيق الخادم الذي يعمل على المنفذ 1234 على الكمبيوتر المحلي الذي أنشأته من.

    للقيام بذلك في PuTTY على نظام التشغيل Windows ، حدد Connection> SSH> Tunnels. حدد الخيار "عن بعد". بالنسبة لـ "المنفذ المصدر" ، أدخل المنفذ البعيد. بالنسبة إلى "الوجهة" ، أدخل عنوان الوجهة والمنفذ في النموذج local_address: local_port.

    على سبيل المثال ، إذا كنت ترغب في إعداد المثال أعلاه ، فستدخل 8888 كميناء المصدر و مضيف محلي: 1234 كوجهة. انقر فوق "إضافة" بعد ذلك ثم انقر فوق "فتح" لفتح اتصال SSH. ستحتاج أيضًا إلى إدخال عنوان ومدخل خادم SSH نفسه على شاشة "الجلسة" الرئيسية قبل الاتصال ، بالطبع.

    يمكن للناس بعد ذلك الاتصال بالمنفذ 8888 على خادم SSH وسيتم نقل حركة المرور الخاصة بهم إلى المنفذ 1234 على النظام المحلي الخاص بك.

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

    إعادة توجيه المنفذ الديناميكي: استخدم خادم SSH كبروكسي

    هناك أيضًا "إعادة توجيه المنفذ الديناميكي" ، الذي يعمل بشكل مشابه للوكيل أو VPN. سيقوم عميل SSH بإنشاء بروكسي SOCKS يمكنك تكوين التطبيقات لاستخدامه. سيتم إرسال جميع حركة المرور التي يتم إرسالها عبر الوكيل عبر خادم SSH. هذا يشبه إعادة التوجيه المحلية - فإنه يأخذ حركة المرور المحلية المرسلة إلى منفذ معين على جهاز الكمبيوتر الخاص بك ويرسله عبر اتصال SSH إلى موقع بعيد.

    على سبيل المثال ، لنفترض أنك تستخدم شبكة Wi-Fi عامة. كنت ترغب في تصفح آمن دون التعرض للرصد. إذا كان لديك إمكانية الوصول إلى خادم SSH في المنزل ، فيمكنك الاتصال به واستخدام إعادة توجيه المنفذ الديناميكي. سيقوم عميل SSH بإنشاء بروكسي SOCKS على جهاز الكمبيوتر الخاص بك. سيتم إرسال كل حركة المرور المرسلة إلى ذلك الوكيل عبر اتصال خادم SSH. لن يتمكن أي شخص يراقب شبكة Wi-Fi العامة من مراقبة تصفحك أو مراقبة مواقع الويب التي يمكنك الوصول إليها. من منظور أي من المواقع التي تزورها ، سيكون الأمر كما لو كنت تجلس أمام جهاز الكمبيوتر في المنزل. وهذا يعني أيضًا أنه يمكنك استخدام هذه الخدعة للوصول إلى مواقع الويب الخاصة بالولايات المتحدة فقط أثناء وجودك خارج الولايات المتحدة الأمريكية ، على افتراض أن لديك إمكانية الوصول إلى خادم SSH في الولايات المتحدة الأمريكية ، بالطبع.

    كمثال آخر ، قد ترغب في الوصول إلى تطبيق خادم الوسائط لديك على الشبكة المنزلية. لأسباب تتعلق بالأمان ، قد يكون لديك خادم SSH فقط معرّض للإنترنت. لا تسمح بالاتصالات الواردة من الإنترنت إلى تطبيق خادم الوسائط الخاص بك. يمكنك إعداد إعادة توجيه المنفذ الديناميكي ، وتهيئة متصفح الويب لاستخدام بروكسي SOCKS ، ثم الوصول إلى الخوادم التي تعمل على الشبكة المنزلية من خلال متصفح الويب كما لو كنت تجلس أمام نظام SSH في المنزل. على سبيل المثال ، إذا كان خادم الوسائط موجودًا على المنفذ 192.168.1.123 على الشبكة المنزلية ، فيمكنك توصيل العنوان 192.168.1.123 في أي تطبيق باستخدام بروكسي SOCKS وستتمكن من الوصول إلى خادم الوسائط كما لو كنت على شبكتك المنزلية.

    لاستخدام إعادة التوجيه الديناميكي ، قم بتشغيل الأمر ssh باستخدام حجة ، مثل:

    ssh -D local_port [email protected]

    على سبيل المثال ، لنفترض أنك تمتلك حق الوصول إلى خادم SSH على ssh.yourhome.com واسم المستخدم الخاص بك على خادم SSH هو تمايل . تريد استخدام إعادة التوجيه الديناميكية لفتح بروكسي SOCKS على المنفذ 8888 على جهاز الكمبيوتر الحالي. قمت بتشغيل الأمر التالي:

    ssh -D 8888 [email protected]

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

    للقيام بذلك في PuTTY على نظام التشغيل Windows ، حدد Connection> SSH> Tunnels. حدد الخيار "ديناميكي". بالنسبة لـ "المنفذ المصدر" ، أدخل المنفذ المحلي.

    على سبيل المثال ، إذا أردت إنشاء بروكسي SOCKS على المنفذ 8888 ، فستدخل 8888 كميناء المصدر. انقر فوق "إضافة" بعد ذلك ثم انقر فوق "فتح" لفتح اتصال SSH. ستحتاج أيضًا إلى إدخال عنوان ومدخل خادم SSH نفسه على شاشة "الجلسة" الرئيسية قبل الاتصال ، بالطبع.

    يمكنك بعد ذلك تكوين تطبيق للوصول إلى بروكسي SOCKS على جهاز الكمبيوتر المحلي الخاص بك (أي عنوان IP 127.0.0.1 ، الذي يشير إلى جهاز الكمبيوتر المحلي الخاص بك) وتحديد المنفذ الصحيح.

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

    عند القيام بذلك في Firefox ، حدد "Manual proxy configuration" ، أدخل "127.0.0.1" في مربع مضيف SOCKS ، وأدخل المنفذ الديناميكي في مربع "المنفذ". اترك مربعات وكيل HTTP و SSL وكيل وكيل FTP فارغة.

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