Kung Fu Style Linux: VPN مجاني عبر SSH

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



الفكرة الأساسية هنا هي الاتصال بجهاز كمبيوتر بعيد على شبكة وجعل كل حركة مرور الشبكة تبدو محلية لتلك الشبكة.







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



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



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



التحضير الأولي









VPN



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



يجب إجراء بعض الإعدادات الخاصة على الخادم ، ولكن من المحتمل جدًا أن تكون قد تم إجراؤها بالفعل عليه. لذلك ،/etc/ssh/sshd_config



يجب أن يحتويالملفعلى سطرPermitTunnel=yes



. بالإضافة إلى ذلك ، قد تحتاج إلى تعيين القيمة إلىyes



معلمةAllowTCPForwarding



. قد يحتاج جدار الحماية أيضًا إلى بعض الإعدادات. في هذه الحالة ، تعليمات تكوين المكون الإضافي NetworkManager قد تكون مفيدة حتى لأولئك الذين لا يستخدمون هذا البرنامج.



إعدادات جانب العميل



إذا كنت تستخدم NetworkManager ، فستحتاج إلى المكون الإضافي المناسب. بالنسبة إلى توزيعات Neon والتوزيعات الأخرى المستندة إلى Debian ، فإن الحزمة جيدة network-manager-ssh



. هذا كل ما تحتاجه. إذا كنت لا تريد استخدام NetworkManager ، فيمكنك استخدام الأوامر التالية من مادة مؤلف البرنامج المساعد:



ssh -f -v -o Tunnel=point-to-point -o ServerAliveInterval=10 -o TCPKeepAlive=yes -w 100:100 root@YOUR_SSH_SERVER \
'/sbin/ifconfig tun100 172.16.40.1 netmask 255.255.255.252 pointopoint 172.16.40.2' && \
/sbin/ifconfig tun100 172.16.40.2 netmask 255.255.255.252 pointopoint 172.16.40.1

      
      





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



مشاكل



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



من أجل توفير القدرة على تسجيل الدخول إلى الجذر إلى الخادم ، تحتاج إلى تحرير الملف /etc/ssh/sshd_config



وتعيين المعلمة PermitRootLogin



علىyes



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



systemctl restart sshd

      
      





يمكنك أيضًا استخدام هذا الأمر:



/etc/init.d/ssh restart

      
      





بعد ذلك ، عند تسجيل الدخول إلى الجهاز المحلي باستخدام حساب عادي ، تحتاج إلى استخدامه ssh-copy-id



لتثبيت الشهادة على الجهاز المضيف. بعد الانتهاء من ذلك ، تحتاج إلى العودة إلى الخادم وتغيير /etc/ssh/sshd_config



القيمة PermitRootLogin



إلى prohibit-password



. سيسمح لك ذلك بتسجيل الدخول إلى الخادم كجذر باستخدام شهادة ، ولكن ليس باستخدام كلمة مرور.



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



.



من الناحية النظرية ، يمكنك تمرير خيارات ssh إضافية إلى المكون الإضافي NetworkManager ، ولكن لسبب ما لا يعمل هذا النهج مع إصدار المكون الإضافي من المستودعات. إذا كنت لا تستخدم المكون الإضافي ، وتقوم بكل شيء يدويًا ، فيمكنك إجراء الإعدادات اللازمة بنفسك. يمكن ضبط إعدادات SSH للمستخدم الجذر /root/.ssh/config



. يمكنك أيضًا ضبط الإعدادات العامة في /etc/ssh/ssh_config



.



إذا قمت بتغيير الإعدادات العامة ، إذا كان النظام يدعمها ، ففكر في استخدام /etc/ssh/ssh_config.d



. بفضل هذا ، ستتمكن من تعيين معلمات لمضيف معين ، والتي لن يتم استبدالها عند تحديث النظام. على سبيل المثال ، يمكنك إنشاء ملف في الدليل المناسب بالاسم hackaday.conf



:



Host *.hackaday.com hackaday.com
StrictHostKeyChecking no
Tunnel yes

      
      





مرة أخرى ، إذا لم تعجبك فكرة التحقق من مفتاح المضيف ، فما عليك سوى تسجيل الدخول مرة واحدة كجذر وقبول المفتاح البعيد يدويًا. أو ، إذا كنت شجاعًا ، فقم بالتحرير يدويًا /root/.ssh/known_hosts



.



الإتصال



يجب أن يكون كل شيء جاهزًا للذهاب الآن. إذا كنت تستخدم المكون الإضافي لـ NetworkManager ، فأنت تحتاج فقط إلى إنشاء اتصال جديد. أي ، تحتاج إلى الانتقال إلى قسم اتصالات VPN وتحديد SSH.









تحديد نوع الاتصال



الآن أنت بحاجة إلى تكوين عدة معلمات للاتصال الجديد. بما في ذلك - تحتاج إلى تحديد الشهادة التي تخطط لاستخدامها لتسجيل الدخول إلى النظام البعيد.









إعداد الاتصال



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



النتيجة



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



بالمناسبة ، يمكنك القيام بالكثير من الأشياء الشيقة باستخدام SSH . على سبيل المثال - لتنظيم عمل مناسب مع الملفات .



هل تستخدم VPN؟










All Articles