Beschleunegt OpenVPN op engem Openwrt Router. Alternativ Versioun ouni soldering Eisen an Hardware Extremismus

Beschleunegt OpenVPN op engem Openwrt Router. Alternativ Versioun ouni soldering Eisen an Hardware Extremismus

Moien alleguer, ech liesen viru kuerzem alen Artikel iwwer wéi Dir OpenVPN op engem Router beschleunegt kënnt andeems Dir Verschlësselung op e separat Stéck Hardware transferéiert, dat am Router selwer solderéiert ass. Ech hunn en ähnleche Fall mam Auteur - TP-Link WDR3500 mat 128 Megabytes RAM an engem schlechten Prozessor, deen guer net mat Tunnelverschlësselung këmmert. Ech wollt awer kategoresch net an de Router mat engem Lötstéck klammen. Ënnert dem Schnëtt, meng Erfahrung fir OpenVPN op e separat Stéck Hardware mat engem Backup um Router am Fall vun engem Accident ze bewegen.

Objective

Et gëtt en TP-Link WDR3500 Router an Orange Pi Zero H2. Mir wëllen datt Orange Pi Tunnel am normale Modus verschlësselt, a wann eppes geschitt ass, gëtt d'VPN-Veraarbechtung zréck op de Router. All Firewall-Astellungen um Router solle funktionnéieren wéi virdrun. An am Allgemengen, am Allgemengen, soll d'Zousatz vun engem zousätzleche Stéck Eisen transparent an onmerkbar fir jiddereen sinn. OpenVPN funktionnéiert iwwer TCP, TAP Adapter am Bréckmodus (Server-Bréck).

Decisioun

Amplaz iwwer USB ze verbannen, hunn ech décidéiert en Hafen vum Router ze verbréngen an all Subnets ze verbannen déi eng VPN Bréck op Orange Pi hunn. Et stellt sech eraus datt d'Stéck Eisen kierperlech an de selwechte Netzwierker hänkt wéi de VPN Server um Router. Duerno erhéijen mir genau déiselwecht Serveren um Orange Pi, an um Router hu mir eng Aart Proxy ageriicht, sou datt et all erakommen Verbindungen op den externen Server schéckt, a wann den Orange Pi dout oder net verfügbar ass, dann op den intern Fallback Server. Ech hunn HAProxy geholl.

Et stellt sech sou eraus:

  1. Client kënnt
  2. Wann den externen Server net verfügbar ass - wéi virdrun, geet d'Verbindung op den internen Server
  3. Wann verfügbar, gëtt de Client vun Orange Pi akzeptéiert
  4. VPN op Orange Pi entschlësselt Päckchen a spuckt se zréck op de Router
  5. Router routes hinnen iergendwou

Ëmsetzung Beispill

Also, loosst eis soen datt mir zwee Netzwierker um Router hunn - Main (1) a Gaascht (2), fir jidderee gëtt et en OpenVPN Server fir vu baussen ze verbannen.

Network Configuratioun

Mir mussen béid Netzwierker duerch een Hafen passéieren, also kreéiere mir 2 VLANs.

Um Router, an der Network / Switch Sektioun, erstellt VLANs (zum Beispill 1 an 2) a schalt se am tagged Modus op de gewënschten Hafen un, füügt déi nei erstallt eth0.1 an eth0.2 un déi passend Netzwierker (fir zum Beispill, add to brigde).

Op Orange Pi kreéiere mir zwee VLAN Interfaces (ech hunn 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

An direkt zwou Brécke fir si kreéieren:

/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

Aktivéiert Autostart fir all 4 Profiler (netctl aktivéieren). Elo, nom Neistart, hänkt Orange Pi an den zwee erfuerderlechen Netzwierker. Interface Adressen op Orange Pi sinn a Static Leases um Router konfiguréiert.

ip addr weisen

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 Setup

Als nächst kopéiert d'Astellunge fir OpenVPN a Schlësselen vum Router. D'Astellunge kënnen normalerweis aus geholl ginn /tmp/etc/openvpn*.conf

Par défaut hält openvpn am TAP Modus a Server-Bréck seng Interface inaktiv. Fir et ze schaffen, musst Dir e Skript addéieren deen leeft wann d'Verbindung aktivéiert ass.

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

Als Resultat, soubal eng Verbindung geschitt ass, gëtt d'vpn-Main Interface op br-main bäigefüügt. Fir de Gaaschtgitter ass et ähnlech bis zum Interfacenumm an der Adress an der Serverbréck.

Extern Ufro Routing a Proxying

Op dësem Schrëtt ass Orange Pi scho fäeg Verbindungen ze akzeptéieren an Clienten an déi gewënscht Netzwierker ze loossen. Et bleift fir Proxying vun erakommende Verbindungen um Router ze konfiguréieren.

Mir transferéieren Router VPN Serveren op aner Ports, installéiere HAProxy um Router a konfiguréieren:

/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

genéissen

Wann alles no Plang gaang ass, ginn d'Clienten op Orange Pi an de Routerprozessor wäert net méi waarm ginn, an d'VPN-Geschwindegkeet wäert wesentlech eropgoen. Zur selwechter Zäit bleiwen all Netzwierkregelen, déi um Router registréiert sinn, relevant. Am Fall vun engem Accident op der Orange Pi fällt et erof an HAProxy wéckelt Clienten op lokalen Serveren.

Merci fir Är Opmierksamkeet, Virschléi a Korrekturen si wëllkomm.

Source: will.com

Setzt e Commentaire