لذا تابعت البرنامج التعليمي الخاص بنا حول كيفية إعداد خادم VPN الخاص بك باستخدام OpenVPN وخادم Amazon EC2 ، وكان يعمل بشكل رائع. هذا هو ، حتى حصلت فجأة المحظورة. ربما قمت بإعادة تشغيل المثيل وحصلت على عنوان IP جديد. إنه عمل رائع مرة أخرى لبضعة أيام أخرى ، ثم يتم حظره. يبدو أن مكتبك أو مزود خدمة الإنترنت أو الحكومة يحظر بنشاط خوادم OpenVPN. اذا ماذا تفعل?
تقوم جدران الحماية الأساسية بحظر الاتصالات استنادًا إلى المنفذ المستخدم وعنوان IP الوجهة ، لكن جدران الحماية الأكثر تقدماً تستخدم فحص الحزمة العميقة (DPI) و / أو فحص الرزم (SPI) للتمييز بين أنواع مختلفة من خوارزميات التشفير وبروتوكولات VPN. هذا يعني أنه يمكنهم اكتشاف حركة مرور OpenVPN والإشارة إليها حتى يتمكن المسؤول من حظر الخادم.
هناك ثلاثة خيارات للتغلب على هذا: وكيل التشويش ، نفق SSL ، ونفق SSH. في هذا البرنامج التعليمي ، سنناقش الأمر الأخير. يلتف نفق SSH اتصالك المشفر بالفعل في طبقة أخرى من التشفير بحيث لا يستطيع جدار الحماية التمييز. يجب أن تتجاوز كل طريقة من هذه الطرق جدران الحماية DPI و SPI الموضوعة إما من قبل الشركات أو الحكومات التي تفرض الرقابة الثقيلة مثل الصين.
لدى OpenVPN عبر SSH جانبان سلبيان. الأول هو أداء ناجح بسبب التشفير المزدوج. ثانيًا ، لم يعد بالإمكان اكتشاف بصمة OpenVPN عند نفقها عبر SSH ، ولكن بعض جدران الحماية تمنع حركة مرور SSH أيضًا. هذا هو الحال بالنسبة لخدمات مثل Netflix ، التي توقف استخدام أي نوع من أنواع الوكيل المشفر أو OpenVPN أو SSH أو غير ذلك. في هذه الحالة ، نوصيك بإعداد Obfsproxy بدلاً من ذلك ، مما يجعل حركة المرور المشفرة تبدو طبيعية وغير مشفرة. Obfsproxy أقوى بكثير لهذا السبب ، ولكنه أيضًا أكثر تعقيدًا في الإعداد والتشغيل.
لسوء الحظ ، لا يعمل Obfsproxy مع OpenVPN حاليًا إلا على سطح مكتب ، على حد علمنا. يمكن استخدام نفق SSH على جهاز محمول يعمل بنظام Android أو iOS.
يفترض هذا البرنامج التعليمي أنه قد تم بالفعل إعداد خادم OpenVPN فعال ويمكنه الاتصال به باستخدام تطبيق OpenVPN GUI أو OpenVPN Connect. يجب أن تكون قادرًا أيضًا على SSH في الخادم الخاص بك باستخدام إما Terminal على Mac أو PuTTy على جهاز كمبيوتر. لأغراض العرض التوضيحي ، سنستخدم PuTTy. إذا لم يكن لديك كل ذلك الإعداد ، يرجى الرجوع إلى البرنامج التعليمي السابق.
إعداد OpenVPN عبر SSH على جهاز كمبيوتر
في درسنا الأخير ، ناقشنا كيفية إعداد بروكسي SSH بسيط ، ثم قمنا بتوسيعه لإنشاء خادم VPN كامل الوظائف. يجمع هذا النهج بين الاثنين ، مما يعني أنه يجب أن يكون لديك بالفعل كل ما تحتاجه.
افتح PuTTy وقم بتحميل تكوين خادم VPN الخاص بك. في الشريط الجانبي ، انتقل إلى اتصال > SSH > الأنفاق. تأكد من تضمين D8080 في القائمة. إذا لم يكن الأمر كذلك ، اكتب 8080 في “منفذ المصدر” وتحقق من تلقائي وديناميكي. ثم ضرب إضافة. لديك الآن وكيل SSH يعمل عبر المنفذ 8080. يمكنك حفظ هذا كتكوين جلسة منفصلة إذا كنت تريد مرة أخرى في علامة التبويب جلسة لشجرة التنقل.
انقر فوق فتح وتسجيل الدخول إلى الخادم الخاص بك. تذكر أنه في الإصدار الأحدث من Amazon Linux AMI ، اسم المستخدم هو “مستخدم ec2”.
انتقل إلى ملف openvpn.conf وتحقق من المحتويات باستخدام هذه الأوامر
مؤتمر نزع السلاح / الخ / openvpn
القط openvpn.conf
يجب أن يعرض هذا محتويات ملف تكوين خادم OpenVPN. يجب أن تبدو هذه:
المنفذ 1194
بروتو TCP خادم
ديف tun1
ifconfig 10.4.0.1 10.4.0.2
خادم الحالة tcp.log
الفعل 3
سر ovpn.key
الشيء المهم هو أن السطر الثاني مضبوط على TCP ، وليس UDP. إذا كنت بحاجة إلى تغييره ، يمكنك تحريره باستخدام هذا الأمر:
سودو نانو openvpn.conf
ثم انقر فوق CTRL + O (الحرف “o” ، وليس الصفر) لحفظ الملف ، ثم CTRL + X لإنهاء المحرر.
التكوين العميل
على جهازك المحلي ، انتقل إلى ملفات تهيئة عميل OpenVPN. إذا استخدمت دليل التثبيت الافتراضي ، فسيكون هذا هو C: / Program Files / OpenVPN / config.
قم بإنشاء نسخة من ملف تهيئة OpenVPN الموجود لديك من آخر برنامج تعليمي أو أنشئ واحدة جديدة. ابحث عن “المفكرة” أو محرر نص عادي آخر وانقر فوقه بزر الماوس الأيمن لتشغيل كمسؤول. افتح أو أنشئ ملف التهيئة الجديد ، والذي سيبدو كما يلي:
بروتو TCP العميل
مضيف محلي بعيد 1194
المنفذ 1194
ديف tun1
سر ovpn.key
بوابة إعادة توجيه def1
ifconfig 10.4.0.2 10.4.0.1
الجوارب الوكيل إعادة المحاولة
socks-proxy 127.0.0.1 8080
لاحظ أن السطر “البعيد” الثاني يستخدم مضيف محلي بدلاً من عنوان IP لخادم OpenVPN ، بالإضافة إلى سطرين في النهاية يقومون بتكوين OpenVPN لاستخدام بروكسي SOCKS. كل شيء آخر هو نفسه كما كان من قبل.
احفظ ملف التكوين الجديد في مجلد التكوين بدليل OpenVPN.
إعداد التطبيقات
الخطوة الأخيرة هي تكوين تطبيقاتك لاستخدام البروكسي عبر المنفذ 8080. وهذا مشابه لما فعلناه مع بروكسي SSH الأساسي من آخر برنامج تعليمي. سيكون للعديد من التطبيقات إعداد وكيل متاح في الإعدادات ، وقد يكتشف البعض منه تلقائيًا. إذا كنت بحاجة إلى إعداده يدويًا ، فإن المعلومات الثلاثة التي تحتاجها هي:
- المضيف: 127.0.0.1
- الميناء: 8080
- نوع الوكيل: SOCKS5 (أو SOCKS v5)
فيما يلي إرشادات Firefox و Chrome:
في Firefox:
- انتقل إلى الأدوات > خيارات > المتقدمة > شبكة الاتصال > الإتصال > الإعدادات > التكوين الوكيل اليدوي
- عيّن SOCKS Host كـ 127.0.0.1 والمنفذ كـ 8080 (أو أي شيء قمت بتعيين منفذ النفق عليه على PuTTy).
- انقر فوق “موافق” للحفظ
في Chrome Proxy Switchy
- يجب أن تظهر صفحة الإعداد بمجرد تثبيت الامتداد ، أو انقر فوق الرمز في أعلى يمين Chrome وانقر فوق خيارات.
- اسم الملف الشخصي ما تريد. ضمن التكوين اليدوي ، عيّن مضيف SOCKS إلى 127.0.0.1 والمنفذ إلى 8080 (أو أي شيء قمت بتعيين منفذ النفق عليه في PuTTy. اترك كل شيء فارغًا.
- اضغط على “حفظ” ، ثم انقر فوق الرمز مرة أخرى لتحديد ملف تعريف الوكيل.
اتصل الآن بالخادم أولاً باستخدام PuTTy باستخدام التكوين أعلاه ، ثم باستخدام VPN باستخدام ملف التكوين الجديد الذي أنشأناه.
أنت الآن متصل بالإنترنت باستخدام OpenVPN عبر SSH!
التليفون المحمول
سنشرح كيفية تكييف نفق OpenVPN + SSH لنظام Android ، على الرغم من أن نظام التشغيل iOS لا ينبغي أن يكون مختلفًا.
قبل أن نبدأ ، هناك بعض التحذيرات. أولاً ، تعمل هذه الطريقة فقط لتصفح الويب. هذا لأنه ، على عكس سطح المكتب ، لا يمكنك فقط فتح المنافذ كما تشاء على جهاز Android أو iOS. هذا يعني أن المنافذ التي تستخدمها التطبيقات الأخرى لن يتم توجيهها عبر وكيل SSH. للتغلب على ذلك ، يمكنك القضاء على جهازك أو كسره واستخدام تطبيق مثل تطبيقات ProxyDroid أو Cydia’s Unix لتهيئة الوكيل.
هذا برنامج تعليمي ليوم لاحق. في الوقت الحالي ، دعنا نعمل على تشغيله بنظام Android مع Firefox. ستحتاج إلى تثبيت التطبيقات التالية:
- OpenVPN لنظام Android (ملاحظة: NOT OpenVPN Connect ، والذي هو أكثر انتقائية بشأن المصادقة)
- ConnectBot ، أو تطبيق SSH مكافئ للتطبيق (JuiceSSH جيد لكن تكاليفه إضافية إلى المنافذ الأمامية)
- مدير الملفات مثل File Commander
- Firefox ، أو متصفح آخر يتيح لك تكوين الوكلاء
ستحتاج أيضًا إلى بعض وسائل نقل الملفات من جهاز الكمبيوتر إلى هاتفك. كبل USB على ما يرام. لقد استخدمت مجلد مزامنة IBackup.
حدد موقع ovpn.key وملف config .ovpn الذي قمت بإنشائه أعلاه على سطح المكتب ، وانقلهما إلى وحدة التخزين الداخلية أو بطاقة SD في هاتفك. انقل أيضًا ملف مفتاح .pem الذي يوفره مضيف الخادم الخاص بك. من المحتمل أن يكون موجودًا في نفس مكان ملف. pk الذي تستخدمه للمصادقة مع PuTTy. إذا فقدت ذلك ، فسيتعين عليك إنشاء واحدة أخرى على لوحة معلومات Amazon EC2 ، أو من أي خدمة استضافة خادم تستخدمها.
اختياريا ، يمكنك الحصول على ملف التكوين القياسي .ovpn الذي تستخدمه للاتصال بدون SSH. ثم يمكنك استخدام VPN الخاص بك مع جميع التطبيقات بدلاً من المتصفح فقط ، وهو مفيد لاستكشاف الأخطاء وإصلاحها.
إعداد ConnectBot
قم بتشغيل ConnectBot على هاتفك. انقر على النقاط الثلاث في الزاوية اليمنى العليا ، وانتقل إلى إدارة Pubkeys. انقر النقاط مرة أخرى في الصفحة التالية ، وانقر استيراد. يجب أن يبدأ تشغيل مدير الملفات الذي قمت بتثبيته. ابحث عن ملف .pem الذي انتقلت إليه للتو على هاتفك وحدده. يجب أن يظهر الآن في قائمة المفاتيح العامة مع قفل أحمر بجانبه. اضغط عليه حتى يتحول إلى اللون الأخضر. اضغط على زر العودة للعودة إلى الصفحة الرئيسية في ConnectBot.
في الحقل الطرفي السفلي بجوار “ssh” ، أدخل تفاصيل SSH الخاصة بك. يجب أن تبدو هذه:
EC2 المستخدم @: 22
استبدل عنوان IP الخاص بخادم OpenVPN. اضغط على مفتاح الدخول إلى SSH في الخادم الخاص بك. يجب حفظ كل هذا حتى لا تضطر إلى إعادة إدخاله مرة أخرى ، ولكن قد تحتاج إلى تبديل المفتاح العام مرة أخرى في المستقبل.
بمجرد الاتصال بنجاح ، اضغط على النقاط الثلاثة مرة أخرى وانقطع الاتصال. يجب حفظ ملف التعريف الخاص بك على الشاشة الرئيسية ل ConnectBot. اضغط عليه لفترة طويلة لفتح قائمة السياق ، ثم انقر فوق “تحرير منفذ للأمام”. في الصفحة التالية ، انقر فوق النقاط الثلاثة واختر “إضافة منفذ للأمام”.
سمها ما شئت. اضبط النوع على Dynamic (SOCKS) ومنفذ المصدر على 8080 (أو كل ما هو موجود في سطر الجوارب الجوارب بملف تهيئة OpenVPN الخاص بك). اضغط على “إنشاء منفذ للأمام”.
ConnectBot جاهز للعمل ، لكننا لن نقوم بالاتصال بعد. لنقم بإعداد OpenVPN أولاً.
OpenVPN لإعداد Android
شغّل OpenVPN لنظام Android.
انقر فوق الزر المربع مع وجود سهم لأسفل في أعلى الزاوية اليمنى لاستيراد ملف تعريف. انتقل إلى ملف التكوين الخاص بك .ovpn وحدده. في الصفحة التالية ، اضغط على الزر الذي يقول “تحديد”.
هذه المرة ، انتقل إلى ملف ovpn.key الخاص بك وحدده. اضغط على زر الحفظ الأصفر أسفل الزاوية اليمنى.
يجب أن يظهر ملفك الشخصي الجديد الآن في القائمة على الشاشة الرئيسية للتطبيق.
قبل الاتصال ، دعونا نتحقق من جدار حماية الخادم الخاص بنا. قم بتسجيل الدخول إلى AWS ، وحدد المثيلات وقم بتمييز خادم OpenVPN. في مجال مجموعات الأمان ، انقر فوق الحقل المستخدم لهذا المثيل. انقر بزر الماوس الأيمن واختر “تعديل القواعد الواردة”.
أضف قواعد TCP المخصصة للمنافذ 22 و 1194 و 8080 ، مع الضبط حسب الضرورة لتكوينك الشخصي.
الآن ، حان الوقت للاتصال. افتح ConnectBot أولاً. انقر فوق الملف الشخصي الذي أنشأناه للتو لـ SSH في الخادم الخاص بك. تأكد من تبديل المفتاح pubkey ، وإلا فسوف تظهر لك رسالة خطأ حول كلمة المرور. بعد الاتصال بنجاح ، انتقل إلى تطبيق OpenVPN. اضغط على ملف التعريف الخاص بك هناك للاتصال.
في نهاية سجل OpenVPN الذي ينبثق عند الاتصال ، يجب أن تشاهد رسالة تقول “CONNECTED ، SUCCESS”.
لاحظ أنه نظرًا لأننا نستخدم نفس ملفات .pem و .key كما هو الحال على سطح المكتب لدينا ، يمكنك فقط استخدام بيانات الاعتماد هذه على جهاز واحد في كل مرة. تأكد من أنك غير متصل على سطح المكتب الخاص بك أولاً. إذا كنت تريد الاتصال في وقت واحد على أجهزة متعددة ، فستحتاج إلى إنشاء بيانات اعتماد جديدة (.key و .pem) لكل.
قم بتكوين Firefox لاستخدام وكيل
أخيرًا ، نحتاج إلى تهيئة Firefox لاستخدام الخادم الوكيل. لا يتوفر Chrome و Safari على الجوّال مع خيارات تهيئة الخادم الوكيل ، ولهذا نوصي باستخدام Firefox. يمكنك محاولة إعداد الخادم الوكيل في إعدادات wi-fi ، ولكن بعد ذلك سيتعين عليك تغييره في كل مرة تريد الاتصال دون وكيل.
في شريط URL Firefox ، اكتب “about: config”. في شريط البحث في تلك الصفحة ، اكتب “network.proxy”. سيؤدي هذا إلى عرض جميع الحقول التي نحن مهتمون بها. أدخل الإعدادات التالية في الحقول المشار إليها:
- network.proxy.socks: 127.0.0.1
- network.proxy.socks_port: 8080 (أو أي شيء قمت بتعيينه في تهيئة OpenVPN و ConnectBot)
- network.proxy.type: 1
يجب أن يوجه ذلك حركة مرور متصفح Firefox عبر OpenVPN و SSH. يمكنك الآن تصفح الويب من جهاز محمول عبر VPN دون خوف من التفتيش الدقيق للحزم!
إذا كنت تريد الاتصال عبر وكيل SSH دون OpenVPN ، فما عليك سوى SSH في الخادم الخاص بك باستخدام ConnectBot ولا تتصل بـ OpenVPN. على العكس ، يمكنك استيراد ملف التهيئة .ovpn بخلاف SSH الأساسي الخاص بك إلى تطبيق OpenVPN والتواصل مع ذلك الوكيل sans SSH.
“نفق” من قبل jo.sau مرخص بموجب CC BY 2.0
شكرًا لك على هذا البرنامج التعليمي المفيد حول إعداد خادم VPN باستخدام OpenVPN وخادم Amazon EC2. ومع ذلك ، فإن الحظر المفاجئ للخادم يمكن أن يكون مشكلة كبيرة. يجب أن نتذكر أن بعض الدول والشركات تحظر بنشاط خوادم OpenVPN ، ولكن هناك طرق للتغلب على ذلك ، مثل استخدام نفق SSH. شكرًا لك على شرح هذه الطريقة بالتفصيل وتوضيح الجوانب السلبية والإيجابية لهذا الخيار. سأحتفظ بهذه المعلومات للمستقبل.