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

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

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

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

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

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

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

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

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

ssh -L local_port:remote_address:remote_port username@server.com

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

ssh -L 8888:192.168.1.111:1234 bob@ssh.youroffice.com

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

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

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

ssh -L 8888:localhost:1234 bob@ssh.youroffice.com

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

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

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

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

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

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

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

ssh -R remote_port:local_address:local_port username@server.com

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

ssh -R 8888:localhost:1234 bob@ssh.youroffice.com

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

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

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

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

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

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

ذات صلة: ما الفرق بين VPN و Proxy؟

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

ذات صلة: لماذا يمكن أن يكون استخدام شبكة Wi-Fi عامة خطيرًا ، حتى عند الوصول إلى المواقع المشفرة

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

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

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

ssh -D local_port username@server.com

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

ssh -D 8888 bob@ssh.yourhome.com

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

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

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

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

ذات صلة: كيفية تكوين خادم وكيل في فايرفوكس

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

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

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