Përshpejtojmë OpenVPN në router Openwrt. Version alternativ pa soldering dhe ekstremizëm harduerësh

Përshpejtojmë OpenVPN në router Openwrt. Version alternativ pa soldering dhe ekstremizëm harduerësh

PĂ«rshĂ«ndetje tĂ« gjithĂ«ve, kohĂ«t e fundit lexova njĂ« artikull tĂ« vjetĂ«r pĂ«r mĂ«nyrĂ«n se si mund tĂ« pĂ«rshpejtojmĂ« OpenVPN nĂ« router duke e transferuar enkriptimin nĂ« njĂ« pajisje tĂ« veçantĂ«, e cila saldohen brenda vetĂ« router-it. UnĂ« kam njĂ« rast tĂ« ngjashĂ«m me autorin — TP-Link WDR3500 me 128 megabajt RAM dhe njĂ« procesor tĂ« varfĂ«r, i cili nuk arrin tĂ« pĂ«rballojĂ« enkriptimin e tunelĂ«ve. MegjithatĂ«, nuk doja kurrsesi tĂ« futesha nĂ« router me soldering. MĂ« poshtĂ« Ă«shtĂ« pĂ«rvoja ime e zhvendosjes sĂ« OpenVPN nĂ« njĂ« pajisje tĂ« veçantĂ« me rezervim nĂ« router pĂ«r rast emergjence.

Detyra

Kam një router TP-Link WDR3500 dhe një Orange Pi Zero H2. Duam që enkriptimi i tunelëve të merret në mënyrë standarde nga Orange Pi, ndërsa, nëse ndodh ndonjë gjë me të, përpunimi VPN kthehet përsëri në router. Të gjitha konfigurimet e firewall-it në router duhet të punojnë si më parë. Në përgjithësi, shtimi i një pajisje shtesë duhet të kalojë transparencë për të gjithë dhe të jetë i padukshëm. OpenVPN punon mbi TCP, adapteri TAP në modin bridge (server-bridge).

Zgjidhja

NĂ« vend tĂ« lidhjes pĂ«rmes USB, vendosa tĂ« shpenzoj njĂ« port tĂ« router-it dhe tĂ« krijoj pĂ«rmes tij tĂ« gjitha subnetet nĂ« tĂ« cilat ka njĂ« VPN bridge nĂ« Orange Pi. KĂ«shtu, pajisja do tĂ« ndodhet fizikisht nĂ« tĂ« njĂ«jtat rrjete si serverĂ«t VPN nĂ« router. Pas kĂ«saj, ngremĂ« serverĂ« tĂ« njĂ«jtĂ« nĂ« Orange Pi, dhe nĂ« router configure njĂ« proxy qĂ« tĂ« drejtojĂ« tĂ« gjithĂ« lidhjet e hyrshme nĂ« njĂ« server tĂ« jashtĂ«m, dhe nĂ«se Orange Pi njĂ« ditĂ« dĂ«shton ose nuk Ă«shtĂ« i aksesueshĂ«m — atĂ«herĂ« nĂ« njĂ« server tĂ« brendshĂ«m fallback. Kam marrĂ« HAProxy.

Kështu rezulton:

  1. Klienti vjen
  2. NĂ«se serveri i jashtĂ«m nuk Ă«shtĂ« i aksesueshĂ«m — si mĂ« parĂ«, lidhja shkon nĂ« serverin e brendshĂ«m
  3. NĂ«se Ă«shtĂ« i aksesueshĂ«m — klienti pranohet nga Orange Pi
  4. VPN në Orange Pi dekripton paketat dhe i dërgon përsëri në router
  5. Routeri i riorienton ato diku

Shembulli i realizimit

Pra, le tĂ« supozojmĂ« qĂ« kemi dy rrjete nĂ« router — main(1) dhe guest(2), pĂ«r secilĂ«n prej tyre ka njĂ« server OpenVPN pĂ«r lidhjen nga jashtĂ«.

Konfigurimi i rrjetit

Na nevojitet të kalojmë të dy rrjetet përmes një porti, kështu që krijojmë 2 VLAN-a.

Në routerin në seksionin Network/Switch krijojmë VLAN (p.sh., 1 dhe 2) dhe i aktivizojmë ato në modalitetin tagged në portin përkatës, duke shtuar eth0.1 dhe eth0.2 të krijuara rishtazi në rrjetet përkatëse (p.sh., duke i shtuar në bridge).

Në Orange Pi krijojmë dy interface VLAN (unë përdor Archlinux ARM + netctl):

/etc/netctl/vlan-main

Description='VLAN Kryesor mbi eth0'
Interface=vlan-main
Connection=vlan
BindsToInterfaces=eth0
VLANID=1
IP=no

/etc/netctl/vlan-guest

Description='VLAN Mysafir mbi eth0'
Interface=vlan-guest
Connection=vlan
BindsToInterfaces=eth0
VLANID=2
IP=no

Dhe menjëherë krijojmë dy bridge për to:

/etc/netctl/br-main

Description="Koneksoni Bridgin Kryesor"
Interface=br-main
Connection=bridge
BindsToInterfaces=(vlan-main)
IP=dhcp

/etc/netctl/br-guest

Description="Koneksoni Bridgin Mysafir"
Interface=br-guest
Connection=bridge
BindsToInterfaces=(vlan-guest)
IP=dhcp

Aktivizojmë auto-start në të katër profilët (netctl enable). Tani, pas rinisjes, Orange Pi do të jetë në dy rrjetet e nevojshme. Adresat e interface-ve në Orange Pi i konfigurojmë në Static Leases në router.

ip addr show

4: vlan-main@eth0:  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:  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:  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:  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

Konfigurimi i VPN

Më pas, kopjojmë nga routeri konfigurimet për OpenVPN dhe çelësat. Konfigurimet zakonisht mund të merren nga /tmp/etc/openvpn*.conf

Me default, openvpn, i cili funksionon në modin TAP dhe server-bridge, mban ndërfaqen e tij inaktive. Për të punuar gjithçka, duhet të shtoni një skript që ekzekutohet kur aktivizohet lidhja.

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

Si ndodhi qĂ« nĂ« momentin e lidhjes, interfaci vpn-main do tĂ« shtohet nĂ« br-main. PĂ«r rrjetin guest — ndodhi njĂ«soj nĂ« pĂ«rputhje me emrin e interfaci dhe adresĂ«n nĂ« server-bridge.

Routimi i kërkesave nga jashtë dhe prokƥimi

Në këtë hap, Orange Pi tashmë mund të pranojë lidhje dhe të lejojë klientët në rrjetet e nevojshme. Mbetej të konfiguruar prokƥimin e lidhjeve hyrëse në router.

Kalim në serverët VPN në porte të tjera, vendosim HAProxy në router dhe konfigurim:

/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

Gëzohemi

Nëse gjithçka shkon sipas planit - klientët do të kalojnë në Orange Pi dhe procesori i routerit nuk do të nxehet më, ndërsa shpejtësia e VPN-së do të rritet ndjeshëm. Megjithatë, të gjitha rregullat e rrjetit të përcaktuara në router do të mbeten në fuqi. Në rast se ndodh një fatkeqësi me Orange Pi, ai do të bjerë dhe HAProxy do të drejtojë klientët në serverat lokalë.

Faleminderit për vëmendjen, rekomandimet dhe korrigjimet janë të mirëpritura.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster