نحن نسرع OpenVPN بسعر 9.99 دولارًا أمريكيًا* أو قم بتضمين Orange Pi One في جهاز التوجيه

نحن نسرع OpenVPN بسعر 9.99 دولارًا أمريكيًا* أو قم بتضمين Orange Pi One في جهاز التوجيه

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

إذا كنت قد قمت بتثبيت أي OpenVPN عند تثبيت جهاز التوجيه، ربما فوجئت بسرعته. حتى أجهزة التوجيه منخفضة التكلفة تتعامل مع حركة بيانات تقارب سرعة الجيجابت بسلاسة تامة، بفضل تخصيص شريحة منفصلة لوظائف التوجيه وNAT. المعالجات الرئيسية في هذه الأجهزة ضعيفة نسبيًا، نظرًا لعدم وجود حمل يُذكر عليها. هذا التوازن يسمح بسرعات عالية للجهاز وتخفيض سعره بشكل ملحوظ - أجهزة التوجيه ذات المعالجات القوية أغلى بكثير، وتُستخدم الآن ليس فقط كأجهزة مشاركة الإنترنت، بل أيضًا كأجهزة تخزين شبكية (NAS)، وبرامج تحميل ملفات التورنت، وأنظمة الوسائط المتعددة المنزلية.

لا يمكن اعتبار جهاز التوجيه الخاص بي، TP-Link TL-WDR4300، جديدًا - فقد ظهر هذا الطراز في منتصف عام 2012، ويحتوي على معالج بسرعة 560 ميجاهرتز بمعمارية MIPS32 74Kc، وقوته تكفي فقط لنقل بيانات مشفرة بسرعة 20-23 ميجابت في الثانية. OpenVPNوهو أمر ضئيل للغاية وفقًا لمعايير سرعة الإنترنت المنزلي الحديثة.
كيف يمكننا زيادة سرعة النفق المشفر؟ جهاز التوجيه الخاص بي يعمل بشكل جيد، ويدعم 3x3 MIMO، ويعمل بشكل جيد بشكل عام، ولا أرغب في تغييره.
نظرًا لأنه من المعتاد الآن إنشاء صفحات إنترنت بحجم 10 ميجابايت، وكتابة تطبيقات سطح المكتب في Node.js وتجميعها في ملف بحجم 100 ميجابايت، وزيادة قوة الحوسبة بدلاً من التحسين، فسنفعل شيئًا فظيعًا - سننقل اتصال VPN إلى "كمبيوتر" Orange Pi One منتج ذو لوحة واحدة، والذي سنقوم بتثبيته في علبة جهاز التوجيه دون استهلاك الشبكة ومنافذ USB الحالية، مقابل 9.99 دولارًا فقط*!
* + التوصيل، + الضرائب، + للبيرة، + MicroSD.

OpenVPN

لا يمكن وصف معالج جهاز التوجيه بالضعيف تمامًا، فهو قادر على تشفير البيانات وتجزئتها باستخدام خوارزمية AES-128-CBC-SHA1 بسرعة 50 ميجابت في الثانية، وهي سرعة أسرع بشكل ملحوظ من طريقة عمله. OpenVPNويصل معدل نقل البيانات في خوارزمية التشفير الحديثة CHACHA20 مع دالة التجزئة POLY1305 إلى 130 ميغابت في الثانية! فلماذا إذن نفق VPN بطيء جدًا؟ الأمر كله يتعلق بتبديل السياق بين مساحة المستخدم ومساحة النواة. OpenVPN يقوم هذا النظام بتشفير البيانات والتواصل مع العالم الخارجي ضمن سياق المستخدم، بينما تتم عملية التوجيه الفعلية ضمن سياق نواة النظام. يضطر نظام التشغيل إلى التبديل باستمرار بين السياقين لكل حزمة بيانات مُستلمة أو مُرسلة، مما يُبطئ العملية. هذه المشكلة متأصلة في جميع تطبيقات VPN التي تعمل عبر برنامج تشغيل TUN/TAP، ولا يُعزى بطء الأداء إلى ضعف في التحسين. OpenVPN (مع ذلك، بالطبع، هناك بعض المجالات التي يمكن تحسينها.) لا يوفر أي عميل VPN في مساحة المستخدم سرعة تصل إلى جيجابت واحد مع تعطيل التشفير على جهاز الكمبيوتر المحمول الخاص بي، ناهيك عن الأنظمة ذات المعالج الضعيف.

أورانج بي وان

تُعدّ لوحة Orange Pi One أحادية الشريحة من Xunlong الخيار الأمثل من حيث القيمة مقابل السعر حاليًا. فمقابل 9.99 دولارًا أمريكيًا*، تحصل على معالج ARM Cortex-A7 رباعي النواة قوي يعمل بثبات بتردد 1008 ميجاهرتز، متفوقًا بشكل واضح على منافسيه في نفس الفئة السعرية، Raspberry Pi Zero وNext Thing CHIP. ولكن هنا تنتهي المزايا. إذ لا تُولي Xunlong أي اهتمام للبرمجيات المُثبّتة على لوحاتها، وعند إطلاق One، لم تُوفّر حتى ملفًا لتكوين اللوحة، فضلًا عن صور جاهزة. كما أن شركة Allwinner، مُصنّعة نظام SoC، ليست مُلتزمة بدعم منتجها، فهي مهتمة فقط بالحد الأدنى من وظائف نظام التشغيل. Android 4.4.4، مما يعني أننا مجبرون على استخدام إصدار النواة 3.4 مع Androidلحسن الحظ، يوجد بعض المتحمسين الذين يبنون توزيعات، ويعدلون النواة، ويكتبون برامج لدعم اللوحات في النواة الرئيسية - بعبارة أخرى، يقومون أساسًا بعمل الشركة المصنعة، مما يجعل هذا النظام يعمل بشكل مقبول. لأغراضي، اخترت توزيعة Armbian؛ فهي تُحدَّث باستمرار وبسهولة (يتم تثبيت النوى الجديدة مباشرةً من خلال مدير الحزم، بدلاً من نسخ الملفات إلى قسم خاص، كما هو الحال عادةً مع Allwinner)، وهي تدعم معظم الأجهزة الطرفية، على عكس غيرها.

راوتر

من أجل عدم تحميل المعالج الضعيف لجهاز التوجيه بالتشفير وتسريع اتصال VPN الخاص بنا، يمكننا نقل هذه المهمة إلى أكتاف معالج Orange Pi الأكثر قوة عن طريق توصيله بجهاز التوجيه بطريقة ما. يتبادر إلى الذهن الاتصال إما عبر Ethernet أو USB - كلا الجهازين يدعمان هذين المعيارين، لكنني لم أرغب في استخدام المنافذ الموجودة. ولحسن الحظ، هناك طريقة للخروج.

تدعم شريحة محور USB GL850G، المستخدمة في جهاز التوجيه، 4 منافذ USB، اثنان منها غير سلكيين. من غير الواضح لماذا لم تقم الشركة المصنعة بفكها، على ما أعتقد، لمنع المستخدمين من توصيل 4 أجهزة ذات استهلاك تيار مرتفع (على سبيل المثال، محركات الأقراص الثابتة) في وقت واحد. لم يتم تصميم مصدر الطاقة القياسي لجهاز التوجيه لمثل هذا الحمل. وفي كل الأحوال فهذا في صالحنا.
نحن نسرع OpenVPN بسعر 9.99 دولارًا أمريكيًا* أو قم بتضمين Orange Pi One في جهاز التوجيه
للحصول على منفذ USB آخر، تحتاج فقط إلى لحام سلكين في الأطراف 8(D-) و9(D+) أو 11(D-) و12(D+).

نحن نسرع OpenVPN بسعر 9.99 دولارًا أمريكيًا* أو قم بتضمين Orange Pi One في جهاز التوجيه

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

هناك ثلاثة معايير لشبكة إيثرنت عبر USB:

  • NDIS البعيد (RNDIS)معيار قديم من مايكروسوفت، كان يُستخدم بشكل أساسي خلال Windows XP.
  • نموذج التحكم في إيثرنت (ECM). معيار بسيط يقوم بتغليف إطارات Ethernet ضمن حزم USB. يعد رائعًا لأجهزة المودم السلكية المزودة باتصال USB، حيث يكون من الملائم نقل الإطارات دون معالجة، ولكن نظرًا لبساطته وقيود ناقل USB، فهو ليس سريعًا جدًا.
  • نموذج مضاهاة إيثرنت (EEM). بروتوكول أكثر ذكاءً يأخذ في الاعتبار قيود USB ويقوم بتجميع الإطارات المتعددة في إطار واحد على النحو الأمثل، وبالتالي زيادة الإنتاجية.
  • نموذج التحكم بالشبكة (NCM). أحدث بروتوكول. يتمتع بفوائد EEM ويحسن تجربة الحافلة.

إن تطبيق أي من هذه البروتوكولات على منصتنا، كما هو الحال دائمًا، سيتطلب بعض التحديات. وذلك لأن شركة Allwinner مهتمة فقط بـ Androidأجزاء من النواة، تعمل بشكل طبيعي فقط Android Gadget هو الكود الذي يُنفذ الاتصال مع adb، وتصدير الجهاز عبر بروتوكول MTP، ومحاكاة محرك أقراص فلاش على Androidالأجهزة. نفسه Android يدعم الجهاز أيضًا بروتوكول RNDIS، لكنه معطل في نواة نظام Allwinner. إذا حاولت تجميع النواة مع أي جهاز USB آخر، فلن يظهر الجهاز في النظام مهما حاولت.
لحل المشكلة، من الناحية المثالية، من الضروري العثور على المكان الذي يتم فيه تهيئة وحدة تحكم USB في الكود الذي عدّله المطورون. Androidأداة -android.c، ولكن هناك أيضًا حل بديل لجعل محاكاة الإيثرنت عبر USB تعمل على الأقل:

--- sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:40.427088792 +0300
+++ sun8i/drivers/usb/sunxi_usb/udc/sunxi_udc.c 2016-04-16 15:01:45.339088792 +0300
@@ -57,7 +57,7 @@
 static sunxi_udc_io_t g_sunxi_udc_io;
 static u32 usb_connect = 0;
 static u32 is_controller_alive = 0;
-static u8 is_udc_enable = 0;   /* is udc enable by gadget? */
+static u8 is_udc_enable = 1;   /* is udc enable by gadget? */
 
 #ifdef CONFIG_USB_SUNXI_USB0_OTG
 static struct platform_device *g_udc_pdev = NULL;

تُجبر هذه الرقعة على استخدام وضع عميل USB، مما يسمح لك باستخدام أجهزة USB العادية من Linux.
الآن يجب عليك إعادة بناء النواة باستخدام هذا التصحيح والأداة الضرورية. لقد اخترت EEM لأنه... وفقا لنتائج الاختبار، اتضح أنه أكثر إنتاجية من NCM.
يقدم فريق ارمبيان نظام تجميع بسيط ومريح للغاية لجميع اللوحات المدعومة في التوزيع. فقط قم بتنزيله، ثم ضع التصحيح الخاص بنا userpatches/kernel/sun8i-default/otg.patch، تحرير قليلا compile.sh وحدد الأداة المطلوبة:

نحن نسرع OpenVPN بسعر 9.99 دولارًا أمريكيًا* أو قم بتضمين Orange Pi One في جهاز التوجيه

سيتم تجميع النواة في حزمة deb، والتي لن يكون من الصعب تثبيتها على اللوحة عبرها dpkg.
كل ما تبقى هو توصيل اللوحة عبر USB وتهيئة محول الشبكة الجديد الخاص بنا لتلقي عنوان عبر DHCP. للقيام بذلك تحتاج إلى إضافة شيء مثل ما يلي إلى /etc/network/interfaces:

auto usb0
        iface usb0 inet dhcp
        hwaddress ether c2:46:98:49:3e:9d
        pre-up /bin/sh -c 'echo 2 > /sys/bus/platform/devices/sunxi_usb_udc/otg_role'

من الأفضل تعيين عنوان MAC يدويًا، لأن... سيكون عشوائيًا في كل مرة يتم فيها إعادة تشغيل الجهاز، وهو أمر غير مريح ومزعج.
نقوم بتوصيل كابل MicroUSB بموصل OTG، ونقوم بتوصيل الطاقة من جهاز التوجيه (يمكن توصيله إلى الأطراف 2 و 3 من المشط، وليس فقط بموصل الطاقة).

كل ما تبقى هو تكوين جهاز التوجيه. يكفي تثبيت الحزمة باستخدام برنامج تشغيل EEM وإضافة جهاز شبكة USB الجديد الخاص بنا إلى جسر منطقة جدار الحماية المحلية:

opkg install kmod-usb-net-cdc-eem

نحن نسرع OpenVPN بسعر 9.99 دولارًا أمريكيًا* أو قم بتضمين Orange Pi One في جهاز التوجيه
لتوجيه كل حركة المرور إلى نفق VPN، تحتاج إما إلى إضافة قاعدة SNAT إلى عنوان IP الخاص باللوحة على جانب جهاز التوجيه، أو توزيع عنوان اللوحة كعنوان بوابة عبر dnsmasq. ويتم هذا الأخير عن طريق إضافة السطر التالي إلى /etc/dnsmasq.conf:

dhcp-option = tag:lan, option:router, 192.168.1.100

حيث 192.168.1.100 - عنوان IP الخاص باللوحة الخاصة بك. لا تنس إدخال عنوان جهاز التوجيه في إعدادات الشبكة على اللوحة نفسها!

تم استخدام إسفنجة الميلامين لعزل جهات اتصال اللوحة عن جهات اتصال جهاز التوجيه. اتضح شيئا من هذا القبيل:
نحن نسرع OpenVPN بسعر 9.99 دولارًا أمريكيًا* أو قم بتضمين Orange Pi One في جهاز التوجيه

اختتام

تعمل الشبكة بسرعة مذهلة عبر منفذ USB: 100-120 ميجابت في الثانية، كنت أتوقع أقل من ذلك. OpenVPN يُعالج الجهاز حوالي 70 ميجابت في الثانية من البيانات المشفرة، وهو ليس بالكثير، ولكنه كافٍ لاحتياجاتي. غطاء الراوتر لا يُغلق بإحكام، تاركًا فجوة صغيرة. يمكن لمن يهتمون بالمظهر إزالة موصلات الإيثرنت وموصلات USB Host من اللوحة، مما يسمح بإغلاق الغطاء تمامًا مع بقاء مساحة كافية.
من الأفضل عدم الانخراط في مثل هذه المواد الإباحية والشراء توريس أمنية.

المصدر: www.habr.com

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster