Lezkirina OpenVPN li ser routerek Openwrt. Guhertoya Alternatîf bêyî hesin û tundrewiya hardware

Lezkirina OpenVPN li ser routerek Openwrt. Guhertoya Alternatîf bêyî hesin û tundrewiya hardware

Silav her kes, min vê dawiyê xwend gotara kevn li ser ka hûn çawa dikarin OpenVPN-ê li ser routerek bilez bikin bi veguheztina şîfrekirinê li perçeyek cîhêreng a hardware, ku di hundurê routerê bixwe de tê rijandin. Min dozek mîna nivîskar heye - TP-Link WDR3500 bi 128 megabytes RAM û pêvajoyek belengaz ku bi tevahî nikaribe bi şîfrekirina tunelê re mijûl bibe. Lêbelê, min bê guman nexwest ku bi hesinê lêdanê re têkevim routerê. Li jêr serpêhatiya min a veguheztina OpenVPN-ê li perçeyek nermalava veqetandî ya li ser routerê di bûyerek qezayê de ye.

Armanc

Roterek TP-Link WDR3500 û Orange Pi Zero H2 heye. Em dixwazin Orange Pi wekî berê tunelan şîfre bike, û heke tiştek jê were, dê pêvajoyek VPN vegere routerê. Pêdivî ye ku hemî mîhengên dîwarê dîwarê li ser routerê wekî berê bixebitin. Û bi gelemperî, lêzêdekirina nermalava din divê ji her kesî re zelal û nenas be. OpenVPN li ser TCP-ê dixebite, adapterê TAP-ê di moda pirê de ye (server-pira).

biryar

Li şûna girêdana bi USB-ê, min biryar da ku ez yek portê routerê bikar bînim û hemî jêrtorên ku pirek VPN-ê heye bi Orange Pi ve girêbidim. Derket holê ku hardware dê bi fizîkî di heman toran de wekî servera VPN-ê li ser routerê raweste. Piştî wê, em tam heman serveran li ser Orange Pi saz dikin, û li ser routerê me celebek proxy saz dike da ku ew hemî girêdanên hatinê bişîne servera derveyî, û heke Orange Pi mirî an tune be, wê hingê ji server paşverû ya navxweyî. Min HAProxy girt.

Bi vî rengî derdikeve:

  1. Muşterek tê
  2. Ger servera derveyî peyda nebe, wekî berê, girêdan diçe servera hundurîn
  3. Ger hebe, xerîdar ji hêla Orange Pi ve tê pejirandin
  4. VPN li ser Orange Pi pakêtan şîfre dike û wan vedigerîne nav routerê
  5. Router wan li cihekî rê dike

Mînaka pêkanînê

Ji ber vê yekê, em bibêjin li ser routerê me du torgilok hene - sereke (1) û mêvan (2), ji bo her yek ji wan serverek OpenVPN heye ku ji derve ve girêdayî ye.

Veavakirina torê

Pêdivî ye ku em her du toran di yek portê de rêve bikin, ji ber vê yekê em 2 VLAN-ê biafirînin.

Li ser routerê, di beşa Tor / Switch de, VLAN-an biafirînin (mînak 1 û 2) û wan di moda nîşankirî ya li porta xwestinê de çalak bikin, eth0.1 û eth0.2-a nû hatî afirandin li torên têkildar zêde bikin (mînak, wan zêde bike brigde).

Li ser Orange Pi em du navgînên VLAN-ê diafirînin (min Archlinux ARM + netctl heye):

/etc/netctl/vlan-main

Description='Main VLAN on eth0'
Interface=vlan-main
Connection=vlan
BindsToInterfaces=eth0
VLANID=1
IP=no

/etc/netctl/vlan-mêvan

Description='Guest VLAN on eth0'
Interface=vlan-guest
Connection=vlan
BindsToInterfaces=eth0
VLANID=2
IP=no

Û em tavilê ji wan re du piran çêdikin:

/etc/netctl/br-main

Description="Main Bridge connection"
Interface=br-main
Connection=bridge
BindsToInterfaces=(vlan-main)
IP=dhcp

/etc/netctl/br-mêvan

Description="Guest Bridge connection"
Interface=br-guest
Connection=bridge
BindsToInterfaces=(vlan-guest)
IP=dhcp

Destpêkirina otomatîkî ji bo her 4 profîlan çalak bike (netctl çalak bike). Naha piştî ji nû ve destpêkirinê, Orange Pi dê li ser du torên pêwîst raweste. Em navnîşanên navberê yên li ser Orange Pi di Leases Static de li ser routerê mîheng dikin.

ip addr nîşan bide

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

Sazkirina VPN-ê

Dûv re, em mîhengên OpenVPN û bişkokên ji routerê kopî dikin. Mîhengan bi gelemperî di nav de têne dîtin /tmp/etc/openvpn*.conf

Bi xwerû, openvpn ku di moda TAP-ê de dixebite û server-pira navbeynkariya xwe neçalak digire. Ji bo ku her tişt bixebite, hûn hewce ne ku skrîptek lê zêde bikin ku dema ku pêwend tê çalak kirin dimeşe.

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

Wekî encamek, gava ku pêwendiyek çêbibe, pêwendiya vpn-serekî dê li br-main were zêdekirin. Ji bo tora mêvanan - bi heman rengî, heya nav û navnîşana navberê ya di server-bridge de.

Daxwazên rêvekirinê ji derve û proxying

Di vê gavê de, Orange Pi jixwe dikare pêwendiyan qebûl bike û xerîdaran bi torên pêwîst ve girêbide. Tiştê ku dimîne ev e ku meriv proxykirina girêdanên hatina li ser routerê mîheng bike.

Em serverên VPN yên routerê vediguhezînin portên din, HAProxy-ê li ser routerê saz dikin û mîheng dikin:

/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

Hizkirin

Ger her tişt li gorî planê bimeşe, dê xerîdar biçin Orange Pi û pêvajoya routerê êdî germ nabe, û leza VPN dê pir zêde bibe. Di heman demê de, hemî qaîdeyên torê yên ku li ser routerê hatine tomar kirin dê têkildar bimînin. Di bûyera qezayek li ser Orange Pi de, ew ê têkeve û HAProxy dê xerîdaran veguhezîne serverên herêmî.

Spas ji bo baldariya we, pêşniyar û serrastkirin bi xêr hatin.

Source: www.habr.com

Add a comment