
Përshëndetje të gjithëve, kohët e fundit lexova 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:
- Klienti vjen
- Nëse serveri i jashtëm nuk është i aksesueshëm — si më parë, lidhja shkon në serverin e brendshëm
- Nëse është i aksesueshëm — klienti pranohet nga Orange Pi
- VPN në Orange Pi dekripton paketat dhe i dërgon përsëri në router
- 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
