هڪ Openwrt روٽر تي OpenVPN کي تيز ڪرڻ. سولڊرنگ لوهه ۽ هارڊويئر انتهاپسندي کان سواء متبادل نسخو

هڪ Openwrt روٽر تي OpenVPN کي تيز ڪرڻ. سولڊرنگ لوهه ۽ هارڊويئر انتهاپسندي کان سواء متبادل نسخو

هيلو هرڪو، مون تازو پڙهيو آهي پراڻو مضمون انهي جي باري ۾ ته توهان ڪيئن تيز ڪري سگهو ٿا OpenVPN هڪ روٽر تي انڪريپشن کي هڪ الڳ هارڊويئر ڏانهن منتقل ڪندي، جيڪو روٽر جي اندر ئي سولڊر ٿيل آهي. مون وٽ ليکڪ سان ساڳيو ڪيس آهي - TP-Link WDR3500 128 ميگا بائيٽ ريم سان ۽ هڪ خراب پروسيسر جيڪو مڪمل طور تي سرنگ انڪرپشن کي منهن ڏيڻ جي قابل ناهي. بهرحال، مون بلڪل نه چاهيو ته روٽر ۾ سولڊرنگ لوهه سان. هيٺ منهنجو تجربو آهي OpenVPN کي منتقل ڪرڻ جو هڪ الڳ ٽڪرا هارڊويئر تي روٽر تي بيڪ اپ سان گڏ حادثي جي صورت ۾.

مقصد

اتي ھڪڙو TP-Link WDR3500 روٽر ۽ ھڪڙو نارنگي پي زيرو H2 آھي. اسان چاهيون ٿا ته نارنگي پي سرنگن کي معمول وانگر انڪرپٽ ڪري، ۽ جيڪڏهن ان سان ڪجهه ٿئي ٿو، وي پي اين پروسيسنگ واپس روٽر ڏانهن موٽندي. روٽر تي سڀئي فائر وال سيٽنگون اڳي وانگر ڪم ڪرڻ گهرجن. ۽ عام طور تي، اضافي هارڊويئر شامل ڪرڻ گهرجي شفاف ۽ هر ڪنهن لاءِ غير معمولي. OpenVPN TCP تي ڪم ڪري ٿو، TAP اڊاپٽر پل موڊ ۾ آھي (سرور-برج).

فيصلو

USB ذريعي ڳنڍڻ بدران، مون روٽر جي ھڪڙي بندرگاھ کي استعمال ڪرڻ جو فيصلو ڪيو ۽ سڀني سبنٽس کي ڳنڍيو جن وٽ وي پي اين پل آھي نارنجي پي. اهو ظاهر ٿئي ٿو ته هارڊويئر جسماني طور تي ساڳئي نيٽ ورڪ ۾ وي پي اين سرور وانگر روٽر تي لٽڪندو. ان کان پوء، اسان ساڳئي سرور کي نارنجي پي تي نصب ڪيو، ۽ روٽر تي اسان ڪجهه قسم جي پراڪس کي ترتيب ڏيو ته جيئن اهو سڀ ايندڙ ڪنيڪشن موڪلي ٿو ٻاهرئين سرور ڏانهن، ۽ جيڪڏهن اورنج پي مري ويو آهي يا دستياب ناهي، ته پوء. اندروني فال بيڪ سرور. مون HAProxy ورتو.

اهو هن طرح ظاهر ٿئي ٿو:

  1. هڪ گراهڪ اچي ٿو
  2. جيڪڏهن خارجي سرور دستياب ناهي، اڳ وانگر، ڪنيڪشن اندروني سرور ڏانهن وڃي ٿو
  3. جيڪڏهن دستياب هجي، ڪلائنٽ قبول ڪيو ويو آهي نارنگي پي
  4. VPN Orange Pi تي پيڪٽس کي ڊريڪٽ ڪري ٿو ۽ انهن کي واپس روٽر ۾ اڇلائي ٿو
  5. روٽر انهن کي ڪنهن جاءِ تي پهچائي ٿو

مثال لاڳو ڪرڻ

تنهن ڪري، اچو ته اسان وٽ روٽر تي ٻه نيٽ ورڪ آهن - مکيه (1) ۽ مهمان (2)، انهن مان هر هڪ لاء ٻاهران ڳنڍڻ لاء هڪ OpenVPN سرور آهي.

نيٽ ورڪ جي تشڪيل

اسان کي هڪ بندرگاهه ذريعي ٻنهي نيٽ ورڪن کي روٽ ڪرڻ جي ضرورت آهي، تنهنڪري اسان 2 VLANs ٺاهيندا آهيون.

روٽر تي، نيٽ ورڪ/سوئچ سيڪشن ۾، VLANs ٺاھيو (مثال طور 1 ۽ 2) ۽ انھن کي مطلوبہ پورٽ تي ٽيگ ٿيل موڊ ۾ فعال ڪريو، نئين ٺاھيل eth0.1 ۽ eth0.2 کي لاڳاپيل نيٽ ورڪن ۾ شامل ڪريو (مثال طور، انھن کي brigde ۾ شامل ڪريو).

Orange Pi تي اسان ٻه VLAN انٽرفيس ٺاهيندا آهيون (مون وٽ آهي Archlinux ARM + netctl):

/etc/netctl/vlan-main

Description='Main VLAN on eth0'
Interface=vlan-main
Connection=vlan
BindsToInterfaces=eth0
VLANID=1
IP=no

/etc/netctl/vlan-guest

Description='Guest VLAN on eth0'
Interface=vlan-guest
Connection=vlan
BindsToInterfaces=eth0
VLANID=2
IP=no

۽ اسان فوري طور تي انهن لاء ٻه پل ٺاهي رهيا آهيون:

/etc/netctl/br-main

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

سڀني 4 پروفائلن لاء آٽو شروع ڪريو (netctl فعال). هاڻي هڪ ريبوٽ کان پوء، نارنجي پي ٻن گهربل نيٽ ورڪن تي پھان ٿو. اسان انٽرفيس ايڊريس کي ترتيب ڏيون ٿا نارنجي پي تي جامد ليز ۾ روٽر تي.

ip 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

ڊفالٽ طور، اوپن وي پي اين ٽيپ موڊ ۾ هلندو آهي ۽ سرور پل پنهنجي انٽرفيس کي غير فعال رکندو آهي. هر شي ڪم ڪرڻ لاءِ، توهان کي هڪ اسڪرپٽ شامل ڪرڻ جي ضرورت آهي جيڪا هلندي هجي جڏهن ڪنيڪشن چالو ٿئي.

/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

/etc/openvpn/vpn-up.sh

#!/bin/sh

ifconfig vpn-${profile_name} up
brctl addif br-${profile_name} vpn-${profile_name}

نتيجي طور، جيئن ئي ڪنيڪشن ٿئي ٿي، 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 تي حادثي جي صورت ۾، اهو بند ٿي ويندو ۽ HAProxy ڪلائنٽ کي مقامي سرور ڏانهن منتقل ڪندو.

توهان جي توجه جي مهرباني، تجويزون ۽ سڌارا ڀليڪار آهن.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو