
PĂ«rshĂ«ndetje tĂ« gjithĂ«ve, kohĂ«t e fundit lexova pĂ«r mĂ«nyrĂ«n se si mund tĂ« pĂ«rshpejtohet OpenVPN nĂ« router, duke e zhvendosur enkriptimin nĂ« njĂ« harduer tĂ« veçantĂ« qĂ« lidhet brenda router-it. Kam njĂ« rast tĂ« ngjashĂ«m me atĂ« tĂ« autorit â TP-Link WDR3500 me 128 megabajt RAM dhe njĂ« procesor tĂ« dobĂ«t qĂ« absolutisht nuk pĂ«rballon enkriptimin e tunelave. MegjithatĂ«, nuk doja qĂ« tĂ« futesha nĂ« router me njĂ« hekura. MĂ« poshtĂ«, do tĂ« ndaj pĂ«rvojĂ«n time tĂ« zhvendosjes sĂ« OpenVPN nĂ« njĂ« harduer tĂ« veçantĂ« me rezervimin nĂ« router pĂ«r rastin e njĂ« avarie.
Detyra
Kam një router TP-Link WDR3500 dhe një Orange Pi Zero H2. Dua që enkriptimi i tunelave të merret normalisht nga Orange Pi, dhe nëse ndodh diçka me të, përpunimi VPN do të kthehet përsëri në router. Të gjitha konfigurimet e firewall-it në router duhet të funksionojnë si më parë. Në përgjithësi, shtimi i një hardueri të ri duhet të kalojë transparencë për të gjithë. OpenVPN funksionon mbi TCP, adaptori TAP në mënyrën bridge (server-bridge).
Zgjidhja
Në vend të lidhjes USB, vendosa të harxhoj një port të router-it dhe të lidh Orange Pi me të për të gjitha subnet-et, ku ndodhet VPN bridge. Kështu, hardueri do të jetë fizikisht i lidhur në të njëjtat rrjete si serverët VPN në router. Pas kësaj, do të ngremë serverë të njëjtë në Orange Pi, dhe në router do të konfigurojmë ndonjë proxy që do të japë të gjitha lidhjet e ardhshme në serverin e jashtëm, dhe nëse Orange Pi ndalet ose nuk është i aksesueshëm, atëherë do t'i kthehet serverit të brendshëm të rezervës. Unë përdora HAProxy.
Kështu, ndodh si vijon:
- Klienti arrin
- 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 drejton ato diku
Shembulli i realizimit
Pra, le tĂ« supozojmĂ« se kemi dy rrjete nĂ« router â main (1) dhe guest (2), pĂ«r secilĂ«n prej tyre ka njĂ« server OpenVPN pĂ«r lidhje nga jashtĂ«.
Konfigurimi i rrjetit
Na nevojitet të kalojmë të dy rrjetet përmes një porti, ndaj krijojmë 2 VLAN-a.
Në router, në seksionin Network/Switch krijojmë VLAN-at (p.sh. 1 dhe 2) dhe i aktivizojmë në modalitetin tagged në portin e nevojshëm, duke shtuar VLAN-at e sapokrijuar eth0.1 dhe eth0.2 në rrjetet përkatëse (p.sh., duke i shtuar në bridge).
Në Orange Pi krijojmë dy ndërfaqe VLAN (kam Archlinux ARM + netctl):
/etc/netctl/vlan-main
Description='VLAN-i Kryesor në eth0'
Interface=vlan-main
Connection=vlan
BindsToInterfaces=eth0
VLANID=1
IP=no
/etc/netctl/vlan-guest
Description='VLAN-i Mysafir në 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
Përshkrimi="Konekcioni Kryesor Bridge"
Interface=br-main
Konekcioni=bridge
BindsToInterfaces=(vlan-main)
IP=dhcp
/etc/netctl/br-guest
Përshkrimi="Konekcioni i Mysafirëve Bridge"
Interface=br-guest
Konekcioni=bridge
BindsToInterfaces=(vlan-guest)
IP=dhcp
Aktivizojmë auto-start për të 4 profilet (netctl enable). Tani, pas rinisjes, Orange Pi do të jetë i lidhur në dy rrjete të kërkuara. Adresat e interfaceve 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
Pastaj kopjojme konfigurimin për OpenVPN dhe çelësat nga routeri. Konfigurimet zakonisht mund të merren nga /tmp/etc/openvpn*.conf
Sipas parashikimeve, openvpn, i nisur në modalitetin TAP dhe server-bridge, mban interface-in e tij të paaktivizuar. Që gjithçka të funksionojë, duhet të shtojmë një skript që aktivizohet 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 rezultat, sa herë që ndodh lidhja, interface-i vpn-main do të shtohet në br-main. Për rrjetin e mysafirëve, është e ngjashme me saktësi deri në emrin e interface-it dhe adresën në server-bridge.
Rrugëzimi i kërkesave nga jashtë dhe proksimi
Në këtë hap, Orange Pi tashmë di të pranojë lidhjet dhe të lejojë klientët në rrjetet e nevojshme. Mbete për të konfiguruar proksimin e lidhjeve hyrëse në router.
Ne transferojmë serverët VPN të router-it në porte të tjera, vendosim HAProxy në router dhe i konfigurojmë:
/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ëzojmë
NĂ«se gjithçka ka shkuar sipas planit â klientĂ«t do tĂ« kalojnĂ« nĂ« Orange Pi dhe procesori i router-it nuk do tĂ« nxehet mĂ«, ndĂ«rkohĂ« qĂ« shpejtĂ«sia e VPN do tĂ« rritet ndjeshĂ«m. NdĂ«rkohĂ«, do tĂ« mbeten nĂ« fuqi tĂ« gjitha rregullat rrjetĂ«sore tĂ« cilat janĂ« shkruar nĂ« router. NĂ« rast avarie nĂ« Orange Pi, ai do tĂ« dĂ«shtojĂ« dhe HAProxy do t'i drejtojĂ« klientĂ«t nĂ« serverat lokalĂ«.
Faleminderit për vëmendjen, sugjerimet dhe korrigjimet janë të mirëpritura.
Burimi: habr.com
