Суръат додани OpenVPN дар роутери Openwrt. Варианти алтернативӣ бе оҳан ва экстремизми сахтафзор

Суръат додани OpenVPN дар роутери Openwrt. Варианти алтернативӣ бе оҳан ва экстремизми сахтафзор

Салом ба ҳама, ман ба наздикӣ хондам мақолаи кӯҳна дар бораи он, ки чӣ гуна шумо метавонед OpenVPN-ро дар роутер тавассути интиқоли рамзгузорӣ ба як порчаи алоҳидаи сахтафзор, ки дар дохили худи роутер кафшер карда мешавад, суръат бахшед. Ман як парвандаи шабеҳ ба муаллиф дорам - TP-Link WDR3500 бо 128 мегабайт RAM ва протсессори камбизоат, ки комилан бо рамзгузории нақб қодир нест. Бо вуҷуди ин, ман комилан намехостам, ки бо дарзмол ба роутер ворид шавам. Дар зер таҷрибаи ман дар бораи интиқол додани OpenVPN ба як порчаи алоҳидаи сахтафзор бо нусхабардорӣ дар роутер ҳангоми садама оварда шудааст.

Мақсад

Роутери TP-Link WDR3500 ва Orange Pi Zero H2 мавҷуд аст. Мо мехоҳем, ки Orange Pi нақбҳоро ҳамчун маъмул рамзгузорӣ кунад ва агар бо он чизе рӯй диҳад, коркарди VPN ба роутер бармегардад. Ҳама танзимоти брандмауэр дар роутер бояд мисли пештара кор кунанд. Ва умуман, илова кардани сахтафзорҳои иловагӣ бояд шаффоф ва барои ҳама ноаён бошад. OpenVPN тавассути TCP кор мекунад, адаптери TAP дар реҷаи пул аст (сервер-пул).

ҳалли

Ба ҷои пайвастшавӣ тавассути USB, ман қарор додам, ки як порти роутерро истифода барам ва ҳамаи зершабакаҳоеро, ки пули VPN доранд, ба Orange Pi пайваст кунам. Маълум мешавад, ки сахтафзор физикӣ дар ҳамон шабакаҳое, ки сервери VPN дар роутер аст, овезон хоҳад шуд. Баъд аз ин, мо маҳз ҳамон серверҳоро дар Orange Pi насб мекунем ва дар роутер мо як намуди проксиро насб мекунем, то он ҳама пайвастҳои воридотӣ ба сервери беруна фиристад ва агар Orange Pi мурда ё дастнорас бошад, пас ба сервери бозгашти дохилӣ. Ман HAProxy гирифтам.

Ин чунин рӯй медиҳад:

  1. Мизоҷ меояд
  2. Агар сервери беруна дастнорас бошад, мисли пештара, пайвастшавӣ ба сервери дохилӣ мегузарад
  3. Агар дастрас бошад, муштарӣ аз ҷониби Orange Pi қабул карда мешавад
  4. VPN дар Orange Pi бастаҳоро шифр мекунад ва онҳоро ба роутер бармегардонад
  5. Роутер онҳоро ба ҷое равона мекунад

Намунаи татбиқ

Пас, биёед дар роутер ду шабака дошта бошем - асосӣ (1) ва меҳмон (2), барои ҳар яки онҳо сервери OpenVPN барои пайвастшавӣ ба берун мавҷуд аст.

Конфигуратсияи шабака

Мо бояд ҳарду шабакаро тавассути як порт масир кунем, аз ин рӯ мо 2 VLAN-ро эҷод мекунем.

Дар роутер, дар бахши Network/Switch, мо VLAN-ҳоро эҷод мекунем (масалан, 1 ва 2) ва онҳоро дар ҳолати барчаспшуда дар бандари дилхоҳ фаъол месозем, eth0.1 ва eth0.2-ро ба шабакаҳои мувофиқ илова мекунем (барои Масалан, онхоро ба бригада) илова кунед.

Дар Orange Pi мо ду интерфейси VLAN эҷод мекунем (ман 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

Ва мо фавран барои онҳо ду пул эҷод мекунем:

/etc/netctl/br-main

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

/etc/netctl/br-mehmon

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

Барои ҳама 4 профилҳои худкор оғоз карданро фаъол созед (netctl фаъол). Акнун пас аз бозоғозӣ, Orange Pi дар ду шабакаи зарурӣ овезон хоҳад шуд. Мо суроғаҳои интерфейсро дар Orange Pi дар Иҷораи Static дар роутер танзим мекунем.

ip addr нишон медиҳад

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

Баъдан, мо танзимоти OpenVPN ва калидҳоро аз роутер нусхабардорӣ мекунем. Танзимотро одатан дар он пайдо кардан мумкин аст /tmp/etc/openvpn*.conf

Бо нобаёнӣ, openvpn дар реҷаи TAP кор мекунад ва сервер-пул интерфейси худро ғайрифаъол нигоҳ медорад. Барои ҳама чиз кор кардан, шумо бояд скриптро илова кунед, ки ҳангоми фаъол шудани пайвастшавӣ кор мекунад.

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

Дар натиҷа, вақте ки пайвастшавӣ ба амал меояд, интерфейси vpn-маин ба br-main илова карда мешавад. Барои шабакаи меҳмонон - ба ҳамин монанд, то номи интерфейс ва суроға дар сервер-bridge.

Масири дархостҳои беруна ва прокси

Дар ин қадам, Orange Pi аллакай қодир аст пайвастҳоро қабул кунад ва муштариёнро ба шабакаҳои лозима пайваст кунад. Танҳо он чизе, ки боқӣ мемонад, танзим кардани проксии пайвастҳои воридотӣ дар роутер аст.

Мо серверҳои VPN-ро ба портҳои дигар интиқол медиҳем, HAProxy-ро дар роутер насб мекунем ва танзим мекунем:

/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

Баҳра баред

Агар ҳама чиз мувофиқи нақша сурат гирад, муштариён ба Orange Pi мегузаранд ва протсессори роутер дигар гарм намешавад ва суръати VPN ба таври назаррас афзоиш хоҳад ёфт. Ҳамзамон, ҳама қоидаҳои шабака, ки дар роутер сабт шудаанд, аҳамияти худро нигоҳ медоранд. Дар сурати садама дар Orange Pi, он меафтад ва HAProxy муштариёнро ба серверҳои маҳаллӣ интиқол медиҳад.

Ташаккур барои таваҷҷуҳ, пешниҳодҳо ва ислоҳот хуш омадед.

Манбаъ: will.com

Илова Эзоҳ