á¡á¬ážáá¯á¶ážáá²áááºá¹ááá¬áá« áááŒá¬áá±ážáá®á áá»áœááºáá±á¬áºáááºáá°ážáá«áááºá
áá¯ááºáááºáž
TP-Link WDR3500 áá±á¬ááºáá¬ááŸáá·áº Orange Pi Zero H2 ááŸááááºá Orange Pi ááẠá¥áááºááŸáá¯ááºáá±á«ááºážáá»á¬ážááᯠáá¯á¶ááŸááºá¡ááá¯ááºáž á á¬ááŸááºáá¬ážá á±ááá¯ááŒá®áž áá áºáá¯áá¯ááŒá áºááœá¬ážáá«áá VPN áá¯ááºáá±á¬ááºááŒááºážááẠrouter ááá¯á· ááŒááºááœá¬ážáááºááŒá áºáááºá Router áá±á«áºááŸá firewall áááºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠááááºá¡ááá¯ááºáž á¡áá¯ááºáá¯ááºááá·áºáááºá áá±áá°áá»á¡á¬ážááŒáá·áºá á¡ááᯠhardware áá»á¬ážááᯠááá·áºááœááºážááŒááºážááẠáá°ááá¯ááºážá¡ááœáẠááœáá·áºáááºážááŒááºáá¬ááŸá¯ ááŸáááá·áºáááºá OpenVPN ááẠTCP áá±á«áºááœááºá¡áá¯ááºáá¯ááºáááºá TAP adapter áááºáá¶áá¬ážáá¯áẠ(áá¬áá¬-áá¶áá¬áž) ááœááºááŸááááºá
áá¯á¶ážááŒááºáá»ááº
USB ááŸáááá·áºáá»áááºáááºááá·áºá¡á á¬ážá Router áá¡áá±á«ááºáá áºáá¯ááá¯á¡áá¯á¶ážááŒá¯ááŒá®áž Orange Pi ááá¯á· VPN áá¶áá¬ážáá«ááŸááá±á¬ subnets á¡á¬ážáá¯á¶ážááá¯áá»áááºáááºáááºáá¯á¶ážááŒááºáá²á·áááºá áá¬á·ááºáá²ááẠrouter áá±á«áºááŸá VPN áá¬áá¬áá²á·ááá¯á· áá°áá®áá±á¬ ááœááºáááºáá»á¬ážááœáẠáá»áááºááœá²ááœá¬ážáááºááŒá áºááŒá±á¬ááºáž ááœá±á·ááŸáááá«áááºá ááá¯á·áá±á¬áẠOrange Pi ááœáẠá¡ááá¡áá»áá°áá®áá±á¬áá¬áá¬áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á·ááá·áºááœááºážááŒá®áž Router ááœáẠproxy á¡áá»áá¯ážá¡á á¬ážá¡áá»áá¯á·ááᯠáá»áœááºá¯ááºááá¯á·áááºááŸááºáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááẠááŒááºááá¬áá¬ááá¯á· á¡áááºáá»áááºáááºááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá±ážááá¯á·ááá¯ááºáᬠOrange Pi ááẠáá±áá¯á¶ážááœá¬ážáá«á ááá¯á·ááá¯áẠááááŸáááá¯ááºáá«áá ááá¯á·áá±á¬ááºááœááºá á¡ááœááºážááá¯ááºáž ááŸáá·áºááŒááºáá¬áá¬á áá« HAProxy ááá¯áá°áá²á·áááºá
á€áá²á·ááá¯á· ááœááºáá±á«áºáá¬áááº-
- áá±á¬ááºáááºáá áºáá±á¬áẠáá±á¬ááºáá¬áááºá
- ááááºááá²á·ááá¯á· ááŒááºááá¬áá¬ááᯠááááŸáááá¯ááºáá«áá áá»áááºáááºááŸá¯ááẠá¡ááœááºážááá¯ááºážáá¬áá¬ááá¯á· áá±á¬ááºááœá¬ážáá«áááºá
- áááá¯ááºáá»áŸáẠáá±á¬ááºáááºá¡á¬áž Orange Pi á០áááºáá¶áá«áááºá
- Orange Pi ááŸá VPN ááẠáááºáá±á·áá»áºáá»á¬ážááᯠáá¯ááºááŸááºááŒá®áž áááºážááá¯á·ááᯠrouter á¡ááœááºážááá¯á· ááŒááºááá·áºáááºá
- Router ááẠáááºážááá¯á·ááᯠáá áºáá±áá¬áá¬ááá¯á· ááá¯á·áá±á¬ááºáá±ážáááºá
á¡áá±á¬ááºá¡áááºáá±á¬áºáá¯á¶á¥ááá¬
ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááœáẠrouter ááœáẠááœááºáááºááŸá áºáá¯ááŸáááẠ- main(1) ááŸáá·áº guest(2)á áááºážááá¯á·áá áºáá¯á á®á¡ááœáẠááŒááºáááŸáá·áºáá»áááºáááºáááºá¡ááœáẠOpenVPN áá¬áá¬áá áºáá¯ááŸááááºáá¯ááá¯ááŒáá«á áá¯á·á
ááœááºáááºááœá²á·á ááºážááŸá¯
áá»áœááºá¯ááºááá¯á·ááẠááœááºáááºááŸá áºáá¯áá¯á¶ážááᯠááááºáááºážáá áºáá¯ááŸáá áºááá·áº áááºážááŒá±á¬ááºážááŒá±á¬ááºážááẠááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠVLAN ááŸá áºáá¯ááᯠáááºáá®ážáá«áááºá
router ááœááºá Network/Switch ááá¹áááœááºá VLANs (á¥ááᬠ1 ááŸáá·áº 2) ááá¯áááºáá®ážááŒá®áž áááºážááá¯á·ááᯠááá¯áá»ááºáá±á¬ port ááœáẠáááºáá¬ážáá±á¬áá¯ááºááœááºááœáá·áºáá«á á¡áá áºáááºáá®ážáá¬ážáá±á¬ eth0.1 ááŸáá·áº eth0.2 ááᯠáááºááá¯ááºáá¬ááœááºáááºáá»á¬ážááá¯á· áá±á«ááºážááá·áºáá« (á¥ááá¬á áááºážááá¯á·ááᯠbrigde ááœááºááá·áºáá«á)
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-guest
Description="Guest Bridge connection"
Interface=br-guest
Connection=bridge
BindsToInterfaces=(vlan-guest)
IP=dhcp
áááá¯ááá¯áẠ4 áá¯á áá¯á¶ážá¡ááœáẠá¡ááá¯á¡áá»á±á¬ááºá áááºááŒááºážááᯠááœáá·áºáá« (netctl ááœáá·áºáááº)á ááᯠááŒááºáááºá áááºááŒá®ážáá±á¬ááºá Orange Pi ááẠááá¯á¡ááºáá±á¬ ááœááºáááºááŸá áºáá¯ááœáẠáá»áááºááœá²ááœá¬ážáááºááŒá áºáááºá Router ááŸá Static Leases ááœáẠOrange Pi áá±á«áºááŸá interface ááááºá á¬áá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· configure áá¯ááºáá«áááºá
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 á¡ááœáẠáááºáááºáá»á¬ážááŸáá·áº router ááŸáá±á¬á·áá»á¬ážááᯠáá°ážáá°áá«áááºá áááºáááºáá»á¬ážááᯠá¡áá»á¬ážá¡á¬ážááŒáá·áº ááœá±á·ááá¯ááºáááºá /tmp/etc/openvpn*.conf
áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá TAP áá¯ááºááœáẠopenvpn áááºáááºáá±ááŒá®áž áá¬áá¬-áá¶áá¬ážááẠáááºážá á¡ááºáá¬áá±á·á áºááᯠáááŸá¯ááºááŸá¬ážá á±áá«á á¡áá¬á¡á¬ážáá¯á¶ážá¡áá¯ááºáá¯ááºáááºá¡ááœááºá áá»áááºáááºááŸá¯ááœáá·áºáá±á¬á¡áá«ááœááºáá¯ááºáá±á¬ááºááá·áº script ááá¯áááºááá·áºáááºááá¯á¡ááºáááºá
/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-main interface ááᯠbr-main ááá¯á·áá±á«ááºážááá·áºáááºááŒá áºáááºá á§áá·áºáááºááá áºá¡ááœáẠ- á¡áá¬ážáá°á áá¬áá¬-áá¶áá¬ážááŸá á¡ááºáá¬áá±á·á áºá¡áááºááŸáá·áº ááááºá á¬á¡ááá
áááºážááŒá±á¬ááºážááŒáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠááŒááºáááŸáá·áº proxying ááŒá¯áá¯ááºááŒááºážá
á€á¡ááá·áºááœáẠOrange Pi ááẠáá»áááºáááºááŸá¯áá»á¬ážááᯠáááºáá¶ááá¯ááºááŒá®áž ááá¯á¡ááºáá±á¬ááœááºáááºáá»á¬ážááá¯á· áá±á¬ááºáááºáá»á¬ážááᯠáá»áááºáááºááá¯ááºáá±ááŒá®ááŒá áºáááºá áá»ááºáá¬á¡á¬ážáá¯á¶ážá router áá±á«áºááŸá á¡áááºáá»áááºáááºááŸá¯áá»á¬ážá proxying ááᯠconfigure áá¯ááºáááºááŒá áºáááºá
áá»áœááºá¯ááºááá¯á·ááẠrouter VPN áá¬áá¬áá»á¬ážááᯠá¡ááŒá¬áž port áá»á¬ážááá¯á· ááœáŸá²ááŒá±á¬ááºážááŒá®ážá router ááœáẠHAProxy ááᯠááá·áºááœááºážááŒá®áž 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
ááá¯ááºáá®ážá áááºáž
á¡á á®á¡á ááºá¡ááá¯ááºážááŒá áºáá»áŸááºá áá¯á¶ážá áœá²áá°áá»á¬ážááẠOrange Pi ááá¯á·ááŒá±á¬ááºážáááºááŒá áºááŒá®áž Router ááááá¯áááºáá¬ááẠáá°áá±á¬á·áááºááá¯ááºáá«á VPN ááŒááºááŸá¯ááºážááẠáááááá¬áá¬ááá¯ážáá¬áááºááŒá áºáááºá áá áºáá»áááºáááºážááŸá¬áááºá Router ááœááºááŸááºáá¯á¶áááºáá¬ážáá±á¬ ááœááºáááºá ááºážáá»ááºážáá»á¬ážá¡á¬ážáá¯á¶ážááẠáááºááœááºáá±áááºááŒá áºáááºá Orange Pi ááœáẠááá±á¬áºááááŸá¯áá áºáá¯ááŒá áºááœá¬ážáá±á¬á¡áá«á áááºážááẠááŒá¯ááºáá»áááºááŒá áºááŒá®áž HAProxy ááẠáá¯á¶ážá áœá²áá°áá»á¬ážááᯠáá±áááœááºážáá¬áá¬áá»á¬ážááá¯á· ááœáŸá²ááŒá±á¬ááºážáá±ážáááºááŒá áºáááºá
áááºáá¡á¬áá¯á¶á
á°ážá
áá¯ááºááŸá¯á á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááŸáá·áº á¡ááŸá¬ážááŒááºáááºááŸá¯áá»á¬ážááᯠáá»á±ážáá°ážáááºáá«áááºá
source: www.habr.com