Салом ба ҳама, ман ба наздикӣ хондам
Мақсад
Роутери TP-Link WDR3500 ва Orange Pi Zero H2 мавҷуд аст. Мо мехоҳем, ки Orange Pi нақбҳоро ҳамчун маъмул рамзгузорӣ кунад ва агар бо он чизе рӯй диҳад, коркарди VPN ба роутер бармегардад. Ҳама танзимоти брандмауэр дар роутер бояд мисли пештара кор кунанд. Ва умуман, илова кардани сахтафзорҳои иловагӣ бояд шаффоф ва барои ҳама ноаён бошад. OpenVPN тавассути TCP кор мекунад, адаптери TAP дар реҷаи пул аст (сервер-пул).
ҳалли
Ба ҷои пайвастшавӣ тавассути USB, ман қарор додам, ки як порти роутерро истифода барам ва ҳамаи зершабакаҳоеро, ки пули VPN доранд, ба Orange Pi пайваст кунам. Маълум мешавад, ки сахтафзор физикӣ дар ҳамон шабакаҳое, ки сервери VPN дар роутер аст, овезон хоҳад шуд. Баъд аз ин, мо маҳз ҳамон серверҳоро дар Orange Pi насб мекунем ва дар роутер мо як намуди проксиро насб мекунем, то он ҳама пайвастҳои воридотӣ ба сервери беруна фиристад ва агар Orange Pi мурда ё дастнорас бошад, пас ба сервери бозгашти дохилӣ. Ман HAProxy гирифтам.
Ин чунин рӯй медиҳад:
- Мизоҷ меояд
- Агар сервери беруна дастнорас бошад, мисли пештара, пайвастшавӣ ба сервери дохилӣ мегузарад
- Агар дастрас бошад, муштарӣ аз ҷониби Orange Pi қабул карда мешавад
- VPN дар Orange Pi бастаҳоро шифр мекунад ва онҳоро ба роутер бармегардонад
- Роутер онҳоро ба ҷое равона мекунад
Намунаи татбиқ
Пас, биёед дар роутер ду шабака дошта бошем - асосӣ (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