Kuharakisha OpenVPN kwenye kipanga njia cha Openwrt. Toleo mbadala bila chuma cha soldering na itikadi kali ya vifaa

Kuharakisha OpenVPN kwenye kipanga njia cha Openwrt. Toleo mbadala bila chuma cha soldering na itikadi kali ya vifaa

Hello kila mtu, nilisoma hivi karibuni makala ya zamani kuhusu jinsi unaweza kuongeza kasi ya OpenVPN kwenye router kwa kuhamisha usimbaji fiche kwenye kipande tofauti cha vifaa, ambacho kinauzwa ndani ya router yenyewe. Nina kesi sawa na mwandishi - TP-Link WDR3500 na megabytes 128 za RAM na processor duni ambayo haiwezi kabisa kukabiliana na usimbuaji wa handaki. Hata hivyo, sikutaka kabisa kuingia kwenye router na chuma cha soldering. Ifuatayo ni uzoefu wangu wa kuhamisha OpenVPN kwa kipande tofauti cha vifaa na chelezo kwenye kipanga njia endapo ajali itatokea.

Kazi

Kuna kipanga njia cha TP-Link WDR3500 na Orange Pi Zero H2. Tunataka Orange Pi isimbe vichuguu kwa njia fiche kama kawaida, na ikiwa jambo litatokea, uchakataji wa VPN utarudi kwenye kipanga njia. Mipangilio yote ya firewall kwenye kipanga njia inapaswa kufanya kazi kama hapo awali. Na kwa ujumla, kuongeza vifaa vya ziada vinapaswa kuwa wazi na visivyoonekana kwa kila mtu. OpenVPN inafanya kazi kupitia TCP, adapta ya TAP iko katika hali ya daraja (server-daraja).

uamuzi

Badala ya kuunganisha kupitia USB, niliamua kutumia bandari moja ya router na kuunganisha subnets zote ambazo zina daraja la VPN kwenye Orange Pi. Inabadilika kuwa vifaa vitaning'inia kimwili kwenye mitandao sawa na seva ya VPN kwenye router. Baada ya hayo, tunasanikisha seva zile zile kwenye Orange Pi, na kwenye kipanga njia tunaweka aina fulani ya wakala ili itume miunganisho yote inayoingia kwa seva ya nje, na ikiwa Orange Pi imekufa au haipatikani, basi kwa seva mbadala ya ndani. Nilichukua HAProxy.

Inageuka kama hii:

  1. Mteja anafika
  2. Ikiwa seva ya nje haipatikani, kama hapo awali, unganisho huenda kwa seva ya ndani
  3. Ikiwa inapatikana, mteja anakubaliwa na Orange Pi
  4. VPN kwenye Orange Pi husimbua pakiti na kuzirudisha kwenye kipanga njia
  5. Router huwaelekeza mahali fulani

Mfano wa utekelezaji

Kwa hiyo, hebu sema tuna mitandao miwili kwenye router - kuu (1) na mgeni (2), kwa kila mmoja wao kuna seva ya OpenVPN ya kuunganisha nje.

Usanidi wa mtandao

Tunahitaji kuelekeza mitandao yote miwili kupitia lango moja, kwa hivyo tunaunda VLAN 2.

Kwenye kipanga njia, katika sehemu ya Mtandao/Kubadili, tunaunda VLAN (kwa mfano, 1 na 2) na kuziwezesha katika hali ya lebo kwenye bandari inayotakiwa, ongeza eth0.1 na eth0.2 mpya iliyoundwa kwa mitandao inayolingana (kwa kwa mfano, waongeze kwa brigde).

Kwenye Orange Pi tunaunda miingiliano miwili ya VLAN (nina 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

Na mara moja tunaunda madaraja mawili kwao:

/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

Washa uanzishaji otomatiki kwa wasifu zote 4 (netctl wezesha). Sasa baada ya kuwasha upya, Orange Pi itaning'inia kwenye mitandao miwili inayohitajika. Tunasanidi anwani za kiolesura kwenye Orange Pi katika Ukodishaji Tuli kwenye kipanga njia.

ip nyongeza

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

Kuanzisha VPN

Ifuatayo, tunakili mipangilio ya OpenVPN na funguo kutoka kwa kipanga njia. Mipangilio kawaida inaweza kupatikana ndani /tmp/etc/openvpn*.conf

Kwa chaguo-msingi, openvpn inayoendesha katika hali ya TAP na daraja la seva huweka kiolesura chake kutofanya kazi. Ili kila kitu kifanye kazi, unahitaji kuongeza hati inayoendesha wakati muunganisho umewashwa.

/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}

Matokeo yake, mara tu uunganisho unapotokea, interface ya vpn-kuu itaongezwa kwa br-main. Kwa gridi ya wageni - vile vile, hadi jina la interface na anwani katika daraja la seva.

Kuelekeza maombi nje na uwakilishi

Katika hatua hii, Orange Pi tayari inaweza kukubali miunganisho na kuunganisha wateja kwenye mitandao inayohitajika. Yote iliyobaki ni kusanidi proksi ya miunganisho inayoingia kwenye router.

Tunahamisha seva za VPN za kipanga njia kwenye bandari zingine, sasisha HAProxy kwenye kipanga njia na usanidi:

/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

Furahia

Ikiwa kila kitu kilikwenda kulingana na mpango, wateja watabadilika kwa Orange Pi na processor ya router haitawaka tena, na kasi ya VPN itaongezeka kwa kiasi kikubwa. Wakati huo huo, sheria zote za mtandao ambazo zimesajiliwa kwenye router zitabaki muhimu. Katika tukio la ajali kwenye Orange Pi, itaanguka na HAProxy itahamisha wateja kwa seva za ndani.

Asante kwa umakini wako, mapendekezo na masahihisho yanakaribishwa.

Chanzo: mapenzi.com

Kuongeza maoni