رصف أنفاق L2 في OpenVPN



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



لماذا بالضبط L2؟



طرحت هذا السؤال في المقام الأول: نادرًا ما أعمل مع الأجهزة الطرفية للشبكة ، وبدا لي أنه منذ فترة طويلة كانت جميع المعدات قادرة على المشي على طول L3. مهما كان الأمر: يحتاج شخص ما إلى الوصول إلى طابعات المكاتب ، وشخص ما إلى مسجلات الفيديو ، وشخص ما يريد الاختراق حتى الموت مع صديق في مبارزة LAN - دون مغادرة المنزل ، بالطبع. كما أن فكرة المجلدات المشتركة / الشبكة في المكتب ، والتي يمكن الوصول إليها من المنزل ، جذابة للغاية أيضًا ، يمكن الوصول إليها من المنزل ، خاصةً خلال فترة الإزالة العامة.



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



تقنية



هناك الكثير منها ، وكلها تعمل بغرابة وحدود:



  • على سبيل المثال ، يجب أن يدعم بروتوكول نفق الطبقة الثانية (L2TP) ، كما يوحي الاسم ، OSI L2 ، بما في ذلك إعادة توجيه البث. ولكن لا ، لا تسمح حزمة L2TP + IPsec المقبولة عمومًا بشبكات التوصيل على مستوى L2!
  • PPTP - أصبح ميميًا بسبب نقاط الضعف الرئيسية ، تم إصلاحه بطريقة أو بأخرى ، ولكن لا علاقة له بـ L2.
  • MPLS — «» . , RouterOS ( , ).
  • PPPoE PPPoEoE , . PPPoE , Cisco.
  • EoIP L2VPN made right, , . PPTP, GRE, NAT.


ثم فوجئت عندما وجدت أن Bridging Ethernet الحقيقي يمكنه ... OpenVPN!



غالبًا ما نستخدم شبكة افتراضية خاصة (VPN) شخصية أو عاملة ، بالنسبة للكثيرين يتم تشغيلها بشكل دائم لتجاوز الأقفال (على الرغم من أن هذا الاتجاه ينخفض ​​بعد إزالة حظر Telegram). في مهام عملي ، أستخدم أيضًا مضيفي التطوير عن بُعد طوال الوقت ، وغالبًا ما أستخدم OpenVPN دائمًا. لفترة طويلة ، لم أكن أفهم سبب حاجتي إلى حزمة من OpenVPN Access Server + OpenVPN Connect على العميل. بالنسبة لمهماتي ، كان الإصدار الكلاسيكي مع التحرير اليدوي للتكوينات دائمًا كافياً بالنسبة لي ، وبدا أن لوحات الإدارة المخصصة وواجهة المستخدم الرسومية في غير مكانها في عميل رفيع نحيف. ولكن اتضح أن الواجهة أكثر ملاءمة لإنشاء جسر من أوراق التكوينات في المحطة الطرفية ، على الرغم من أنه ليس كل شيء مثاليًا معها.



اعداد



والحقيقة هي أن Access Server (AS) خرج كمنتج مدفوع ومكلف إلى حد ما ، لذلك قاموا بحشو جميع أنواع الكعك بعناية ، إذا كانوا سيشترونه فقط. وهكذا ، ظهر عنصر فرعي بالقائمة في لوحة إدارة الويب ، مما يسمح لك بتحديد وضع الشبكة (توجيه L2 / توجيه L3) ، وبعد فترة تم قطعها بهدوء من هناك لنفس السبب "لا أحد يحتاج إليها". ومع ذلك ، لم تتم إزالة وظيفة التجسير نفسها والنصوص البرمجية المقابلة ويمكن تخصيصها.



التركيب



نحن بحاجة إلى خادم أو آلة افتراضية. الصورة الخاصة به موجودة في صفحة التنزيل ، وسنقوم أيضًا بتفكيك الحالة مع التثبيت على الخادم تحت Ubuntu 18.04:



apt update && apt -y install ca-certificates wget net-tools gnupg
wget -qO - https://as-repository.openvpn.net/as-repo-public.gpg | apt-key add -
echo "deb http://as-repository.openvpn.net/as/debian bionic main">/etc/apt/sources.list.d/openvpn-as-repo.list
apt update && apt -y install openvpn-as


بعد التثبيت ، سيرتفع الخادم من تلقاء نفسه ، سترى الرسالة التالية:



+++++++++++++++++++++++++++++++++++++++++++++++
Access Server 2.8.4 has been successfully installed in /usr/local/openvpn_as
Configuration log file has been written to /usr/local/openvpn_as/init.log

Access Server Web UIs are available here:
Admin  UI: https://185.209.31.165:943/admin
Client UI: https://185.209.31.165:943/
+++++++++++++++++++++++++++++++++++++++++++++++


يجب عليك تحديد كلمة المرور لحساب المسؤول على الفور:



passwd openvpn


ثم يمكنك فتح لوحة الإدارة في المتصفح (على: 943 / admin ، كما هو موضح أعلاه) ، وتسجيل الدخول باسم مستخدم openvpn بكلمة المرور المحددة وتكوين الخادم.







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



جسر العودة



cd /usr/local/openvpn_as/scripts
./sacli --key "von.general.osi_layer" --value "2" ConfigPut
./sacli start


إذا سار كل شيء على ما يرام ، فسوف يحتوي json الإخراج على ما يلي:



{
 "errors": {},
 "last_restarted": "Thu Jul  2 00:07:37 2020",
 "service_status": {
   "api": "on",
   "auth": "on",
   "bridge": "on",
        ...
    }
}


في لوحة الإدارة ، ستتغير الحالة "طبقة OSI: 3 (التوجيه / NAT)" إلى "2 (جسر)"



ملاحظة: في أحدث الإصدارات ، قد تبقى المعلومات حول L3 عند تمكين الجسر. لماذا - لم أفهم ، الإصدارات الآمنة في هذا الصدد هي حوالي 2.4


في الواقع ، تنتهي هذه الخبرة ، فأنت تحتاج فقط إلى تكوين خادم لنفسك ، والحصول على مستخدم ثانٍ من خلال واجهة الويب نفسها وتسجيل الدخول إلى صفحة المستخدم على المنفذ 943 (بدون / admin). ستكون هناك روابط لتنزيل عملاء OpenVPN Connect لجميع الأنظمة الأساسية مع تكوين مخبوز للتوصيل (باستثناء تطبيقات الهاتف المحمول ، سيتعين عليك قيادة العنوان يدويًا ، ثم سيتم تثبيت كل شيء بنفسه).







بعد نجاح الاتصال وتوصيل العملاء ، سيتوفر نفق L2 مع حركة مرور TCP / UDP. يمكن للعملاء أن يكونوا بمثابة nat للشبكة الداخلية ، وقد تم تكوين هذا أيضًا في لوحة الإدارة.






All Articles