αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“ OpenVPN αž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžš Openwrt αŸ” αž€αŸ†αžŽαŸ‚αž‡αŸ†αž“αž½αžŸαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž‡αžΆαžαž·αžŠαŸ‚αž€ αž“αž·αž„αž—αžΆαž–αž‡αŸ’αžšαž»αž›αž“αž·αž™αž˜αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„

αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“ OpenVPN αž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžš Openwrt αŸ” αž€αŸ†αžŽαŸ‚αž‡αŸ†αž“αž½αžŸαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž‡αžΆαžαž·αžŠαŸ‚αž€ αž“αž·αž„αž—αžΆαž–αž‡αŸ’αžšαž»αž›αž“αž·αž™αž˜αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„

αžŸαž½αžŸαŸ’αžαžΈαž’αŸ’αž“αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž’αžΆαž“αžαŸ’αž˜αžΈαŸ—αž“αŸαŸ‡ αž’αžαŸ’αžαž”αž‘αž…αžΆαžŸαŸ‹ αž’αŸ†αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“ OpenVPN αž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžšαžŠαŸ„αž™αž•αŸ’αž‘αŸαžšαž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž‘αŸ…αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž›αž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžšαŸ‰αŸ„αžαž‘αŸαžšαžαŸ’αž›αž½αž“αž―αž„αŸ” αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž€αžšαžŽαžΈαžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’ - TP-Link WDR3500 αžŠαŸ‚αž›αž˜αžΆαž“ RAM 128 αž˜αŸαž αŸ’αž‚αžΆαž”αŸƒ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž·αž“αž›αŸ’αž’αžŠαŸ‚αž›αž˜αž·αž“αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αžΆαž“αž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž•αŸ’αž›αžΌαžœαžšαžΌαž„αž€αŸ’αžšαŸ„αž˜αžŠαžΈαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αžαŸ’αž‰αž»αŸ†αž–αž·αžαž‡αžΆαž˜αž·αž“αž…αž„αŸ‹αž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžšαŸ‰αŸ„αžαž‘αŸαžšαž‡αžΆαž˜αž½αž™αžŠαŸ‚αž€ soldering αž‘αŸαŸ” αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž“αŸαŸ‡αž‡αžΆαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš OpenVPN αž‘αŸ…αž•αŸ’αž“αŸ‚αž€αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€αž“αŸƒαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αž˜αŸ’αžšαž»αž„αž‘αž»αž€αž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžšαž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž§αž”αž‘αŸ’αž‘αžœαž αŸαžαž»αŸ”

αž‚αŸ„αž›αž”αŸ†αžŽαž„

αž˜αžΆαž“αžšαŸ‰αŸ„αžαž‘αŸαžš TP-Link WDR3500 αž“αž·αž„ Orange Pi Zero H2 αŸ” αž™αžΎαž„αž…αž„αŸ‹αž±αŸ’αž™ Orange Pi αž’αŸŠαž·αž“αž‚αŸ’αžšαžΈαž”αž•αŸ’αž›αžΌαžœαžšαžΌαž„αž€αŸ’αžšαŸ„αž˜αžŠαžΈαžŠαžΌαž…αž’αž˜αŸ’αž˜αžαžΆ αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž’αŸ’αžœαžΈαž€αžΎαžαž‘αžΎαž„αž…αŸ†αž–αŸ„αŸ‡αžœαžΆ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš VPN αž“αžΉαž„αžαŸ’αžšαž‘αž”αŸ‹αž‘αŸ…αžšαŸ‰αŸ„αžαž‘αŸαžšαžœαž·αž‰αŸ” αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‡αž‰αŸ’αž‡αžΆαŸ†αž„αž—αŸ’αž›αžΎαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžšαž‚αž½αžšαžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž–αžΈαž˜αž»αž“αŸ” αž αžΎαž™αž‡αžΆαž‘αžΌαž‘αŸ… αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž”αž“αŸ’αžαŸ‚αž˜αž‚αž½αžšαžαŸ‚αž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž– αž“αž·αž„αž˜αž·αž“αž’αžΆαž…αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž”αžΆαž“αž…αŸ†αž–αŸ„αŸ‡αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆαŸ” OpenVPN αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎ TCP αž’αžΆαžŠαžΆαž”αŸ‹αž‘αŸαžš TAP αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŸαŸ’αž–αžΆαž“ (server-bridge)αŸ”

αž€αžΆαžšαžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αž

αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαž˜αžšαž™αŸˆ USB αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αŸ’αžšαžΎαž…αŸ’αžšαž€αž˜αž½αž™αž“αŸƒαžšαŸ‰αŸ„αžαž‘αŸαžš αž αžΎαž™αž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰αžšαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αž–αžΆαž“ VPN αž‘αŸ… Orange Pi αŸ” αžœαžΆαž”αž„αŸ’αž αžΆαž‰αžαžΆαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„αž“αžΉαž„αž–αŸ’αž™αž½αžšαž“αŸ…αž€αŸ’αž“αž»αž„αž”αžŽαŸ’αžαžΆαž‰αžŠαžΌαž…αž‚αŸ’αž“αžΆαž‘αŸ…αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ VPN αž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžšαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡ αž™αžΎαž„αžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎ Orange Pi αž αžΎαž™αž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžš αž™αžΎαž„αžšαŸ€αž”αž…αŸ†αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž˜αž½αž™αž…αŸ†αž“αž½αž“ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž”αž‰αŸ’αž‡αžΌαž“αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž…αžΌαž›αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαž„αž€αŸ’αžšαŸ… αž αžΎαž™αž”αŸ’αžšαžŸαž·αž“αž”αžΎ Orange Pi αžŸαŸ’αž›αžΆαž”αŸ‹ αž¬αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“ αžŸαžΌαž˜αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‡αŸ†αž“αž½αžŸαžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž™αž€ HAProxy αŸ”

αžœαžΆαž”αŸ’αžšαŸ‚αž…αŸαž‰αžŠαžΌαž…αž“αŸαŸ‡αŸ–

  1. αž’αžαž·αžαž·αž‡αž“αž˜αŸ’αž“αžΆαž€αŸ‹αž˜αž€αžŠαž›αŸ‹
  2. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαž„αž€αŸ’αžšαŸ…αž˜αž·αž“αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“αžŠαžΌαž…αž–αžΈαž˜αž»αž“ αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαž„αž€αŸ’αž“αž»αž„
  3. αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“ αž’αžαž·αžαž·αž‡αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž‘αž½αž›αž™αž€αžŠαŸ„αž™ Orange Pi
  4. VPN αž“αŸ…αž›αžΎ Orange Pi αžŒαž·αž‚αŸ’αžšαžΈαž”αž€αž‰αŸ’αž…αž”αŸ‹αž–αŸαžαŸŒαž˜αžΆαž“ αž“αž·αž„αžŸαŸ’αžŠαŸ„αŸ‡αž‘αžΉαž€αž˜αžΆαžαŸ‹αžœαžΆαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžšαŸ‰αŸ„αžαž‘αŸαžšαžœαž·αž‰αŸ”
  5. αžšαŸ‰αŸ„αžαž‘αŸαžšαž”αž‰αŸ’αž‡αžΌαž“αž–αž½αž€αž‚αŸαž‘αŸ…αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆαž˜αž½αž™αŸ”

αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž…αžΌαžšαž“αž·αž™αžΆαž™αžαžΆαž™αžΎαž„αž˜αžΆαž“αž”αžŽαŸ’αžαžΆαž‰αž–αžΈαžšαž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžš - មេ (1) αž“αž·αž„αž—αŸ’αž‰αŸ€αžœ (2) αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž–αž½αž€αžœαžΆαž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ OpenVPN αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ…αŸ”

αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž”αžŽαŸ’αžαžΆαž‰

αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž‡αžΌαž“αž”αžŽαŸ’αžαžΆαž‰αž‘αžΆαŸ†αž„αž–αžΈαžšαžαžΆαž˜αžšαž™αŸˆαž…αŸ’αžšαž€αž˜αž½αž™ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž™αžΎαž„αž”αž„αŸ’αž€αžΎαž 2 VLANs αŸ”

αž“αŸ…αž›αžΎ Router αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€ Network/Switch αž™αžΎαž„αž”αž„αŸ’αž€αžΎαž VLANs (αž§αž‘αžΆαž αžšαžŽαŸ 1 αž“αž·αž„ 2) αž αžΎαž™αž”αžΎαž€αž–αž½αž€αžœαžΆαž€αŸ’αž“αž»αž„αžšαž”αŸ€αž”αžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αž“αŸ…αž›αžΎαž…αŸ’αžšαž€αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“ αž”αž“αŸ’αžαŸ‚αž˜ 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 αž“αžΉαž„αž–αŸ’αž™αž½αžšαž“αŸ…αž›αžΎαž”αžŽαŸ’αžαžΆαž‰αž‘αžΆαŸ†αž„αž–αžΈαžšαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ” αž™αžΎαž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž“αŸ…αž›αžΎ Orange Pi αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‡αž½αž›αž‹αž·αžαž·αžœαž“αŸ’αžαž“αŸ…αž›αžΎαžšαŸ‰αŸ„αžαž‘αŸαžšαŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž αžΆαž‰ 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 αž αžΎαž™ server-bridge αžšαž€αŸ’αžŸαžΆαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αžšαž”αžŸαŸ‹αžœαžΆαž’αžŸαž€αž˜αŸ’αž˜αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αž’αŸ’αžœαžΈαŸ—αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž“αŸ’αžαŸ‚αž˜αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž–αŸαž›αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž±αŸ’αž™αžŸαž€αž˜αŸ’αž˜αŸ”

/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 αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ… br-main αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αŸ’αžšαž‘αžΆαž…αžαŸ’αžšαž„αŸ’αž‚αž—αŸ’αž‰αŸ€αžœ - αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαžŠαŸ‚αžšαžšαž αžΌαžαžŠαž›αŸ‹αžˆαŸ’αž˜αŸ„αŸ‡αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž“αž·αž„αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ server-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 αž“αžΉαž„αž•αŸ’αž‘αŸαžšαž’αžαž·αžαž·αž‡αž“αž‘αŸ…αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€αŸ”

αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹ αž€αžΆαžšαž•αŸ’αžαž›αŸ‹αž™αŸ„αž”αž›αŸ‹ αž“αž·αž„αž€αžΆαžšαž€αŸ‚αžαž˜αŸ’αžšαžΌαžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αžœαžΆαž‚αž˜αž“αŸαŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹