Pagpadali sa OpenVPN sa usa ka Openwrt router. Alternatibong bersyon nga walay pagsolda nga puthaw ug hardware nga ekstremismo

Pagpadali sa OpenVPN sa usa ka Openwrt router. Alternatibong bersyon nga walay pagsolda nga puthaw ug hardware nga ekstremismo

Kumusta sa tanan, bag-o lang nako nabasa daan nga artikulo bahin sa kung giunsa nimo mapadali ang OpenVPN sa usa ka router pinaagi sa pagbalhin sa encryption sa usa ka bulag nga piraso sa hardware, nga gibaligya sa sulod mismo sa router. Naa koy parehas nga kaso sa tagsulat - TP-Link WDR3500 nga adunay 128 megabytes nga RAM ug usa ka dili maayo nga processor nga hingpit nga dili makasagubang sa tunnel encryption. Bisan pa, dili gyud nako gusto nga mosulod sa router gamit ang usa ka soldering iron. Sa ubos mao ang akong kasinatian sa pagbalhin sa OpenVPN sa usa ka bulag nga piraso sa hardware nga adunay backup sa router kung adunay aksidente.

Tumong

Adunay usa ka TP-Link WDR3500 router ug usa ka Orange Pi Zero H2. Gusto namon nga i-encrypt sa Orange Pi ang mga tunel sama sa naandan, ug kung adunay mahitabo niini, ang pagproseso sa VPN mobalik sa router. Ang tanan nga mga setting sa firewall sa router kinahanglan nga molihok sama kaniadto. Ug sa kinatibuk-an, ang pagdugang sa dugang nga hardware kinahanglan nga transparent ug dili mamatikdan sa tanan. Ang OpenVPN nagtrabaho sa TCP, ang TAP adapter naa sa bridge mode (server-bridge).

desisyon

Imbis nga magkonektar pinaagi sa USB, nakahukom ko nga gamiton ang usa ka pantalan sa router ug ikonektar ang tanan nga mga subnet nga adunay tulay sa VPN sa Orange Pi. Kini nahimo nga ang piraso sa hardware pisikal nga magbitay sa parehas nga mga network sama sa VPN server sa router. Pagkahuman niana, gi-install namon ang parehas nga mga server sa Orange Pi, ug sa router nag-set up kami usa ka matang sa proxy aron ipadala niini ang tanan nga umaabot nga koneksyon sa eksternal nga server, ug kung patay o wala ang Orange Pi, dayon sa internal nga fallback server. Gikuha nako ang HAProxy.

Kini nahimong sama niini:

  1. May niabot nga kliyente
  2. Kung ang eksternal nga server dili magamit, sama kaniadto, ang koneksyon moadto sa internal nga server
  3. Kung naa, ang kliyente gidawat sa Orange Pi
  4. Ang VPN sa Orange Pi nag-decrypt sa mga packet ug giluwa kini balik sa router
  5. Ang router nagtultol kanila bisan asa

Pananglitan sa pagpatuman

Busa, ingnon ta nga kami adunay duha ka network sa router - panguna (1) ug bisita (2), alang sa matag usa kanila adunay OpenVPN server alang sa pagkonektar sa gawas.

Konfigurasyon sa network

Kinahanglan namong i-ruta ang duha ka network pinaagi sa usa ka pantalan, mao nga maghimo kami og 2 ka VLAN.

Sa router, sa seksyon sa Network/Switch, paghimo og mga VLAN (pananglitan 1 ug 2) ug pahimoa sila sa tagged mode sa gusto nga pantalan, idugang ang bag-ong nahimo nga eth0.1 ug eth0.2 sa katugbang nga mga network (pananglitan, idugang sila sa brigde).

Sa Orange Pi naghimo kami og duha ka VLAN interface (ako adunay 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

Ug naghimo dayon kami og duha ka tulay alang kanila:

/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

I-enable ang autostart para sa tanang 4 ka profile (netctl enable). Karon human sa reboot, ang Orange Pi magbitay sa duha ka gikinahanglan nga mga network. Gi-configure namo ang mga address sa interface sa Orange Pi sa Static Leases sa router.

ip addr show

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

Pag-set up ug VPN

Sunod, gikopya namo ang mga setting alang sa OpenVPN ug mga yawe gikan sa router. Ang mga setting kasagarang makita sa /tmp/etc/openvpn*.conf

Sa kasagaran, ang openvpn nga nagdagan sa TAP mode ug server-bridge nagpugong sa interface niini nga dili aktibo. Aron molihok ang tanan, kinahanglan nimo nga idugang ang usa ka script nga nagdagan kung gi-aktibo ang koneksyon.

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

Ingon usa ka sangputanan, sa diha nga ang koneksyon mahitabo, ang vpn-main interface idugang sa br-main. Para sa guest grid - parehas, hangtod sa interface name ug address sa server-bridge.

Pag-ruta sa mga hangyo sa gawas ug pag-proxy

Niini nga lakang, ang Orange Pi makahimo na sa pagdawat sa mga koneksyon ug pagkonektar sa mga kliyente sa gikinahanglan nga mga network. Ang nahabilin mao ang pag-configure sa proxy sa umaabot nga mga koneksyon sa router.

Gibalhin namon ang mga server sa VPN sa router sa ubang mga pantalan, i-install ang HAProxy sa router ug i-configure:

/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

Enjoy

Kung ang tanan moadto sumala sa plano, ang mga kliyente mobalhin sa Orange Pi ug ang processor sa router dili na mag-init, ug ang katulin sa VPN modako pag-ayo. Sa parehas nga oras, ang tanan nga mga lagda sa network nga narehistro sa router magpabilin nga may kalabotan. Kung adunay aksidente sa Orange Pi, kini mahulog ug ang HAProxy magbalhin sa mga kliyente sa lokal nga mga server.

Salamat sa imong pagtagad, mga sugyot ug mga pagtul-id gidawat.

Source: www.habr.com

Idugang sa usa ka comment