
مرحباً بالجميع ، لقد قرأت مؤخرًا
مقالًا قديمًا عن كيفية تسريع OpenVPN على جهاز توجيه ، ونقل التشفير إلى قطعة منفصلة من الأجهزة ، ملحومة داخل جهاز التوجيه نفسه. لديّ حالة مماثلة مع المؤلف - TP-Link WDR3500 مع 128 ميغابايت من ذاكرة الوصول العشوائي ومعالج فقير لا يمكنه التعامل مع تشفير النفق. ومع ذلك ، لم أكن أريد بشكل قاطع الصعود إلى جهاز التوجيه بحديد لحام. تحت القص ، تجربتي في نقل OpenVPN إلى قطعة منفصلة من الأجهزة مع التكرار على جهاز التوجيه في حالة وقوع حادث.
مهمة
يوجد جهاز توجيه TP-Link WDR3500 و Orange Pi Zero H2. نريد أن يتعامل Orange Pi مع تشفير النفق في الوضع العادي ، وإذا حدث شيء ما ، فستعود معالجة VPN إلى جهاز التوجيه. يجب أن تعمل جميع إعدادات جدار الحماية على جهاز التوجيه كما كان من قبل. بشكل عام ، بشكل عام ، يجب أن تكون إضافة أجهزة إضافية شفافة وغير مرئية للجميع. يعمل OpenVPN على TCP ، محول TAP في وضع الجسر (جسر الخادم).
قرار
بدلاً من الاتصال عبر USB ، قررت إنفاق منفذ واحد من جهاز التوجيه والحصول على جميع الشبكات الفرعية التي تحتوي على جسر VPN على Orange Pi. اتضح أن قطعة الحديد ستعلق فعليًا في نفس الشبكات مثل خادم VPN على جهاز التوجيه. بعد ذلك ، نرفع نفس الخوادم تمامًا إلى Orange Pi ، ونقوم بتكوين نوع من الخادم الوكيل على جهاز التوجيه بحيث يرسل جميع الاتصالات الواردة إلى الخادم الخارجي ، وإذا كان Orange Pi ميتًا أو غير متاح ، فعندئذٍ إلى خادم النسخ الاحتياطي الداخلي. أخذت هابروكسي.
اتضح مثل هذا:
- يأتي العملاء
- إذا كان الخادم الخارجي غير متاح - كما كان من قبل ، ينتقل الاتصال بالخادم الداخلي
- إذا كان ذلك متاحًا ، يقبل العميل Orange Pi
- تقوم VPN على Orange Pi بفك تشفير الحزم وبصقها مرة أخرى على جهاز التوجيه
- يقوم جهاز التوجيه بتوجيههم في مكان ما
مثال التنفيذ
لذلك ، فلدينا شبكتان على جهاز التوجيه - رئيسي (1) والضيف (2) ، لكل منهما خادم OpenVPN للاتصال من الخارج.
تكوين الشبكة
نحتاج إلى إعادة توجيه كلتا الشبكتين عبر منفذ واحد ، وبالتالي نقوم بإنشاء 2 VLAN'a.
على جهاز التوجيه الموجود في قسم "الشبكة / التبديل" ، قم بإنشاء شبكات محلية ظاهرية (على سبيل المثال ، 1 و 2) وتمكينها في وضع علامات على المنفذ المطلوب ، وإضافة eth0.1 و eth0.2 المنشأتين حديثًا إلى الشبكات المقابلة (على سبيل المثال ، إضافة إلى brigde).
نقوم بإنشاء واجهات VLAN على Orange Pi (لدي Archlinux ARM + netctl):
/ etc / netctl / vlan-mainDescription='Main VLAN on eth0' Interface=vlan-main Connection=vlan BindsToInterfaces=eth0 VLANID=1 IP=no
/ الخ / netctl / شبكة محلية ظاهرية الضيف Description='Guest VLAN on eth0' Interface=vlan-guest Connection=vlan BindsToInterfaces=eth0 VLANID=2 IP=no
وعلى الفور نقوم بإنشاء جسرين لهم:
/ الخ / نكتل / ر الرئيسية Description="Main Bridge connection" Interface=br-main Connection=bridge BindsToInterfaces=(vlan-main) IP=dhcp
/ etc / netctl / br-guest Description="Guest Bridge connection" Interface=br-guest Connection=bridge BindsToInterfaces=(vlan-guest) IP=dhcp
نقوم بتمكين التشغيل التلقائي على جميع الملفات الشخصية الأربعة (تمكين netctl). الآن ، بعد إعادة التشغيل ، سيتم تعليق Orange Pi في الشبكتين المطلوبتين. يتم تكوين عناوين الواجهة على Orange Pi في Static Leases على جهاز التوجيه.
الملكية الفكرية addr المعرض 4: vlan-main@eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-main state UP group default qlen 1000 link/ether 02:42:f0:f8:23:c8 brd ff:ff:ff:ff:ff:ff inet6 fe80::42:f0ff:fef8:23c8/64 scope link valid_lft forever preferred_lft forever 5: vlan-guest@eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-guest state UP group default qlen 1000 link/ether 02:42:f0:f8:23:c8 brd ff:ff:ff:ff:ff:ff inet6 fe80::42:f0ff:fef8:23c8/64 scope link valid_lft forever preferred_lft forever 6: br-main: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:c7:0f:89:71:6e brd ff:ff:ff:ff:ff:ff inet 192.168.1.3/24 brd 192.168.1.255 scope global dynamic noprefixroute br-main valid_lft 29379sec preferred_lft 21439sec inet6 fe80::50c7:fff:fe89:716e/64 scope link valid_lft forever preferred_lft forever 7: br-guest: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether ee:ea:19:31:34:32 brd ff:ff:ff:ff:ff:ff inet 192.168.2.3/24 brd 192.168.2.255 scope global br-guest valid_lft forever preferred_lft forever inet6 fe80::ecea:19ff:fe31:3432/64 scope link valid_lft forever preferred_lft forever
إعداد VPN
بعد ذلك ، انسخ إعدادات OpenVPN والمفاتيح من جهاز التوجيه. عادة ما يمكن العثور على
الإعدادات في
/tmp/etc/openvpn*.confبشكل افتراضي ، يعمل openvpn قيد التشغيل في وضع TAP و server-bridge على إبقاء الواجهة غير نشطة. لجعله يعمل ، تحتاج إلى إضافة برنامج نصي يتم تشغيله عند تنشيط الاتصال.
/etc/openvpn/main.conf dev vpn-main dev-type tap client-to-client persist-key persist-tun ca /etc/openvpn/main/ca.crt cert /etc/openvpn/main/main.crt cipher AES-256-CBC comp-lzo yes dh /etc/openvpn/main/dh2048.pem ifconfig-pool-persist /etc/openvpn/ipp_main.txt keepalive 10 60 key /etc/openvpn/main/main.key port 443 proto tcp push "redirect-gateway" push "dhcp-option DNS 192.168.1.1" server-bridge 192.168.1.3 255.255.255.0 192.168.1.200 192.168.1.229 status /tmp/openvpn.main.status verb 3 setenv profile_name main script-security 2 up /etc/openvpn/vpn-up.sh
نتيجة لذلك ، بمجرد حدوث الاتصال ، ستتم إضافة الواجهة vpn-main إلى br-main. بالنسبة إلى شبكة الضيف ، ينطبق الأمر نفسه على اسم الواجهة وعنوانها في جسر الخادم.
طلب التوجيه الخارجي والوكيل
في هذه الخطوة ، أصبح Orange Pi قادرًا بالفعل على قبول الاتصالات والسماح للعملاء بالدخول إلى الشبكات اللازمة. يبقى تكوين وكلاء الاتصالات الواردة على جهاز التوجيه.
ننقل خوادم VPN الخاصة بجهاز التوجيه إلى منافذ أخرى ، ونضعها على جهاز التوجيه HAProxy ونقوم بتكوين:
/etc/haproxy.cfg global maxconn 256 uid 0 gid 0 daemon defaults retries 1 contimeout 1000 option splice-auto listen guest_vpn bind :444 mode tcp server 0-orange 192.168.2.3:444 check server 1-local 127.0.0.1:4444 check backup listen main_vpn bind :443 mode tcp server 0-orange 192.168.1.3:443 check server 1-local 127.0.0.1:4443 check backup
استمتع
إذا سارت الأمور وفقًا للخطة الموضوعة ، فسيغادر العملاء إلى Orange Pi ولن يتوقف معالج الموجه عن العمل ، وستزداد سرعة VPN بشكل كبير. في هذه الحالة ، ستبقى جميع قواعد الشبكة المسجلة على جهاز التوجيه ملائمة. في حالة وقوع حادث على Orange Pi ، فسوف تسقط وستقوم HAProxy بإغلاق العملاء على الخوادم المحلية.
شكرا لك على الاهتمام والاقتراحات والتصحيحات هي موضع ترحيب.