OpenVPN bizkortzea Openwrt bideratzaile batean. Bertsio alternatiboa soldadura eta hardware muturrekorik gabe

OpenVPN bizkortzea Openwrt bideratzaile batean. Bertsio alternatiboa soldadura eta hardware muturrekorik gabe

Kaixo guztioi, duela gutxi irakurri dut artikulu zaharra Bideratzaile batean OpenVPN nola bizkortu dezakezun enkriptatzea hardware-pieza bereizi batera transferituz, bideratzailearen barruan soldatuta dagoena. Egilearen antzeko kasu bat daukat - TP-Link WDR3500 128 megabyte RAM eta prozesadore eskasa, tunelaren enkriptatzeari guztiz aurre egiteko gai ez dena. Hala ere, ez nuen bideratzailean soldadura batekin sartu nahi. Jarraian, OpenVPN istripu bat gertatuz gero routerrean babeskopia duen hardware zati batera eramateko esperientzia da.

Task

TP-Link WDR3500 bideratzailea eta Orange Pi Zero H2 bat daude. Orange Pi-k tunelak ohi bezala enkriptatzea nahi dugu, eta zerbait gertatzen bazaio, VPN prozesatzea bideratzailera itzuliko da. Bideratzailearen suebaki ezarpen guztiek lehen bezala funtzionatu beharko lukete. Eta, oro har, hardware gehigarria gehitzea gardena eta oharkabea izan behar da guztiontzat. OpenVPN-k TCP bidez funtzionatzen du, TAP egokitzailea zubi moduan dago (zerbitzari-zubi).

Erabaki

USB bidez konektatu beharrean, bideratzailearen ataka bat erabiltzea eta VPN zubi bat duten azpisare guztiak Orange Pi-ra konektatzea erabaki nuen. Bihurtzen da hardwarea fisikoki zintzilik egongo dela routerreko VPN zerbitzariaren sare berdinetan. Horren ondoren, zerbitzari berdinak instalatzen ditugu Orange Pi-n, eta bideratzailean proxy motaren bat konfiguratzen dugu, sarrerako konexio guztiak kanpoko zerbitzarira bidal ditzan, eta Orange Pi hilik badago edo erabilgarri ez badago, orduan barneko ordezko zerbitzaria. HAProxy hartu nuen.

Honela ateratzen da:

  1. Bezero bat iristen da
  2. Kanpoko zerbitzaria erabilgarri ez badago, lehen bezala, konexioa barne zerbitzarira doa
  3. Eskuragarri badago, Orange Pi-k onartzen du bezeroa
  4. Orange Pi-n VPN paketeak deszifratzen ditu eta bideratzailean txu egiten ditu
  5. Bideratzaileak nonbait bideratzen ditu

Inplementazio adibidea

Beraz, demagun bideratzailean bi sare ditugula: nagusia (1) eta gonbidatua (2), horietako bakoitzean OpenVPN zerbitzari bat dago kanpotik konektatzeko.

Sarearen konfigurazioa

Bi sareak ataka batetik bideratu behar ditugu, beraz 2 VLAN sortzen ditugu.

Bideratzailean, Sarea/Switch atalean, sortu VLANak (adibidez 1 eta 2) eta gaitu etiketatu moduan nahi duzun atakan, gehitu sortu berri diren eth0.1 eta eth0.2 dagozkion sareetan (adibidez, gehitu itzazu bridge-ra).

Orange Pi-n bi VLAN interfaze sortzen ditugu (Archlinux ARM + netctl dut):

/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

Eta berehala bi zubi sortzen ditugu:

/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

Gaitu abiarazte automatikoa lau profil guztietan (netctl gaitu). Orain berrabiarazi ondoren, Orange Pi behar diren bi sareetan zintzilikatuko da. Orange Pi-n interfaze-helbideak konfiguratzen ditugu bideratzaileko Errentamendu Estatikoetan.

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

VPN bat konfiguratzea

Ondoren, OpenVPNren ezarpenak eta gakoak bideratzailetik kopiatzen ditugu. Ezarpenak normalean hemen aurki daitezke /tmp/etc/openvpn*.conf

Lehenespenez, TAP moduan exekutatzen ari den openvpn eta zerbitzari-zubiak bere interfazea inaktibo mantentzen du. Guztiak funtziona dezan, konexioa aktibatuta dagoenean exekutatzen den script bat gehitu behar duzu.

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

Ondorioz, konexioa gertatu bezain laster, vpn-main interfazea br-main gehituko da. Gonbidatuen sarerako - era berean, zerbitzari-zubiko interfazearen izena eta helbidea.

Eskaerak kanpora bideratzea eta proxy-a

Urrats honetan, Orange Pi dagoeneko gai da konexioak onartzeko eta bezeroak beharrezko sareetara konektatzeko. Bideratzailean sarrerako konexioen proxy-a konfiguratzea besterik ez da geratzen.

Router VPN zerbitzariak beste portu batzuetara transferitzen ditugu, HAProxy bideratzailean instalatzen dugu eta konfiguratzen dugu:

/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

Gozatu

Dena aurreikusitakoaren arabera joango balitz, bezeroak Orange Pira aldatuko dira eta bideratzailearen prozesadorea ez da gehiago berotuko, eta VPN abiadura nabarmen handituko da. Aldi berean, bideratzailean erregistratuta dauden sare-arau guztiak garrantzitsuak izango dira. Orange Pi-n istripu bat gertatuz gero, erori egingo da eta HAProxy-k bezeroak tokiko zerbitzarietara transferituko ditu.

Eskerrik asko zure arretagatik, iradokizunak eta zuzenketak ongi etorriak izango dira.

Iturria: www.habr.com

Gehitu iruzkin berria