A’ luathachadh OpenVPN air router Openwrt. Tionndadh eile às aonais iarann ​​​​solder agus ceannairc bathar-cruaidh

A’ luathachadh OpenVPN air router Openwrt. Tionndadh eile às aonais iarann ​​​​solder agus ceannairc bathar-cruaidh

Halo a h-uile duine, leugh mi o chionn ghoirid seann artaigil mu mar as urrainn dhut OpenVPN a luathachadh air router le bhith a’ gluasad crioptachadh gu pìos bathar-cruaidh air leth, a tha air a sholarachadh taobh a-staigh an router fhèin. Tha cùis coltach ris agam leis an ùghdar - TP-Link WDR3500 le 128 megabytes de RAM agus pròiseasar truagh, nach eil a’ dèiligeadh ri crioptachadh tunail idir. Ach, gu cinnteach cha robh mi airson a dhol a-steach don router le iarann ​​​​sèididh. Fon ghearradh, tha an t-eòlas agam air gluasad OpenVPN gu pìos bathar-cruaidh air leth le cùl-taic air an router gun fhios nach bi tubaist ann.

Amas

Tha router TP-Link WDR3500 agus Orange Pi Zero H2. Tha sinn airson gum bi Orange Pi a’ cuairteachadh tunailean anns a’ mhodh àbhaisteach, agus ma thachras rudeigin dha, tillidh giullachd VPN air ais chun router. Bu chòir a h-uile suidheachadh balla-teine ​​​​air an router obrachadh mar a bha e roimhe. Agus san fharsaingeachd, san fharsaingeachd, bu chòir pìos iarainn a bharrachd a bhith follaiseach agus neo-fhaicsinneach don h-uile duine. Bidh OpenVPN ag obair thairis air TCP, inneal-atharrachaidh TAP ann am modh drochaid (drochaid frithealaiche).

co-dhùnadh

An àite a bhith a’ ceangal tro USB, chuir mi romham aon phort den router a chaitheamh agus a h-uile subnets aig a bheil drochaid VPN a cheangal ri Orange Pi. Tha e a ’tionndadh a-mach gum bi am pìos iarainn crochte gu corporra anns na h-aon lìonraidhean ris an t-seirbheisiche VPN air an router. Às deidh sin, bidh sinn a ’togail dìreach na h-aon luchd-frithealaidh air an Orange Pi, agus air an router stèidhich sinn seòrsa de neach-ionaid gus an cuir e a h-uile ceangal a-steach chun t-seirbheisiche a-muigh, agus ma tha an Orange Pi marbh no nach eil e ri fhaighinn, an uairsin chun t-seirbheisiche a-muigh. frithealaiche fallback a-staigh. Ghabh mi HAProxy.

Tha e coltach ri seo:

  1. teachdaiche a’ tighinn
  2. Mura h-eil am frithealaiche a-muigh ri fhaighinn - mar a bha e roimhe, thèid an ceangal ris an fhrithealaiche a-staigh
  3. Ma tha e ri fhaighinn, gabhaidh Orange Pi ris an neach-dèiligidh
  4. Bidh VPN air Orange Pi a’ dì-chrioptachadh phasganan agus gan sgoltadh air ais chun router
  5. Bidh router gan stiùireadh an àiteigin

Eisimpleir buileachaidh

Mar sin, canaidh sinn gu bheil dà lìonra againn air an router - prìomh (1) agus aoigh (2), airson gach fear dhiubh tha frithealaiche OpenVPN airson ceangal bhon taobh a-muigh.

Rèiteachadh lìonra

Feumaidh sinn an dà lìonra a chuir tro aon phort, agus mar sin cruthaichidh sinn 2 VLAN.

Air an router, anns an roinn Lìonra / Switch, cruthaich VLANn (mar eisimpleir, 1 agus 2) agus tionndaidh air ann am modh tagged air a ’phort a tha thu ag iarraidh, cuir an eth0.1 agus eth0.2 ùr-chruthaichte ris na lìonraidhean iomchaidh (airson eisimpleir, cuir ri briogde).

Air Orange Pi bidh sinn a’ cruthachadh dà eadar-aghaidh VLAN (tha Archlinux ARM + netctl agam):

/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

Agus sa bhad cruthaich dà dhrochaid dhaibh:

/etc/netctl/br-main

Description="Main Bridge connection"
Interface=br-main
Connection=bridge
BindsToInterfaces=(vlan-main)
IP=dhcp

/etc/netctl/br-aoigh

Description="Guest Bridge connection"
Interface=br-guest
Connection=bridge
BindsToInterfaces=(vlan-guest)
IP=dhcp

Dèan comas air fèin-thòiseachadh airson na 4 pròifilean gu lèir (comas netctl). A-nis, às deidh ath-thòiseachadh, bidh Orange Pi crochte anns an dà lìonra a tha a dhìth. Tha seòlaidhean eadar-aghaidh air Orange Pi air an rèiteachadh ann an Static Leases air an router.

sealladh IP nas fheàrr

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

Suidhich VPN

An uairsin, dèan lethbhreac de na roghainnean airson OpenVPN agus iuchraichean bhon router. Mar as trice gabhaidh na roghainnean a thoirt bho /tmp/etc/openvpn*.conf

Gu gnàthach, bidh openvpn a’ ruith ann am modh TAP agus server-bridge a’ cumail an eadar-aghaidh aige neo-ghnìomhach. Gus toirt air obrachadh, feumaidh tu sgriobt a chur ris a ruitheas nuair a thèid an ceangal a ghnìomhachadh.

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

Mar thoradh air an sin, cho luath ‘s a thachras ceangal, thèid an eadar-aghaidh vpn-main a chuir ri br-main. Airson a’ ghriod aoighean, tha e coltach ri ainm agus seòladh an eadar-aghaidh anns an drochaid-fhrithealaiche.

Iarrtas taobh a-muigh slighe agus progsaidh

Aig a’ cheum seo, tha Orange Pi mu thràth comasach air gabhail ri ceanglaichean agus leigeil le teachdaichean a-steach do na lìonraidhean a tha thu ag iarraidh. Tha e fhathast ri bhith a’ rèiteachadh progsaidh de cheanglaichean a tha a’ tighinn a-steach air an router.

Bidh sinn a’ gluasad frithealaichean VPN router gu puirt eile, a’ stàladh HAProxy air an router agus a’ rèiteachadh:

/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

tlachd

Ma thèid a h-uile càil a rèir a ’phlana, thèid teachdaichean gu Orange Pi agus cha bhith pròiseasar an router a’ teasachadh suas tuilleadh, agus àrdaichidh astar VPN gu mòr. Aig an aon àm, bidh a h-uile riaghailt lìonra a tha clàraichte air an router fhathast buntainneach. Ma thachras tubaist air an Orange Pi, tuitidh e agus còmhdaichidh HAProxy teachdaichean air frithealaichean ionadail.

Tapadh leibh airson an aire, tha fàilte air molaidhean agus ceartachaidhean.

Source: www.habr.com

Cuir beachd ann