ټولو ته سلام، ما پدې وروستیو کې لوستل
موخه
دلته د TP-Link WDR3500 روټر او د نارنج پای زیرو H2 شتون لري. موږ غواړو د نارنج پای د معمول په څیر تونلونه کوډ کړي، او که چیرې یو څه پیښ شي، د VPN پروسس به بیرته روټر ته راستانه شي. په روټر کې د فایروال ټول تنظیمات باید د پخوا په څیر کار وکړي. او په عموم کې ، د اضافي هارډویر اضافه کول باید هرچا ته شفاف او د پام وړ نه وي. OpenVPN په TCP باندې کار کوي، د TAP اډاپټر په پل حالت کې دی (سرور پل).
پریکړه
د USB له لارې د وصل کیدو پرځای ، ما پریکړه وکړه چې د روټر یو بندر وکاروم او ټول فرعي نیټونه چې د VPN پل لري نارنج پای ته وصل کړم. دا معلومه شوه چې د هارډویر ټوټه به په فزیکي توګه په ورته شبکو کې د VPN سرور په روټر کې ځړول شي. له هغې وروسته، موږ په اورنج پای کې دقیقا ورته سرورونه نصب کوو، او په روټر کې موږ یو ډول پراکسي تنظیم کوو ترڅو دا ټول راتلونکی پیوستون بهرني سرور ته واستوي، او که د نارنج پای مړ وي یا شتون نلري، بیا بیا داخلي فال بیک سرور. ما HAProxy واخیست.
دا په دې ډول وګرځي:
- یو پیرودونکی راځي
- که بهرنی سرور شتون ونلري، لکه څنګه چې مخکې، پیوستون داخلي سرور ته ځي
- که شتون ولري، پیرودونکي د نارنج پای لخوا منل کیږي
- VPN په نارنجي پای کې پاکټونه ډیکریپټ کوي او بیرته روټر ته یې تویوي
- روټر دوی بل ځای ته رسوي
د تطبیق بیلګه
نو، اجازه راکړئ په روټر کې دوه شبکې ولرو - اصلي (1) او میلمانه (2)، د هر یو لپاره د بهرنی سره د نښلولو لپاره د OpenVPN سرور شتون لري.
د شبکې ترتیب
موږ اړتیا لرو چې دواړه شبکې د یو بندر له لارې وګرځوو، نو موږ 2 VLANs جوړوو.
په روټر کې، د شبکې/سویچ برخه کې، VLANs جوړ کړئ (د مثال په توګه 1 او 2) او په مطلوب بندر کې یې په نښه شوي حالت کې فعال کړئ، نوي جوړ شوي eth0.1 او eth0.2 اړوندو شبکو ته اضافه کړئ (د مثال په توګه، دوی په بریګډ کې اضافه کړئ).
په نارنجي پای کې موږ دوه 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 فعال کړئ). اوس د ریبوټ وروسته ، نارنج پای به په دوه اړین شبکو کې ځړول شي. موږ په روټر کې په جامد اجارې کې په نارنجي پای کې د انٹرفیس پتې تنظیم کوو.
آی پی ایډر شو
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 ته اضافه شي. د میلمه گرډ لپاره - په ورته ډول، په سرور پل کې د انٹرفیس نوم او پته پورې.
د روټینګ غوښتنې بهرنۍ او پراکسي کول
پدې مرحله کې، اورنج پای لا دمخه د دې وړتیا لري چې اړیکې ومني او پیرودونکي اړین شبکې سره وصل کړي. ټول هغه څه چې پاتې دي په روټر کې د راتلونکو اړیکو پراکسي تنظیم کول دي.
موږ د روټر 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
خوند واخلئ
که هرڅه د پلان سره سم پرمخ ولاړ شي ، پیرودونکي به نارنج پای ته واړوي او د روټر پروسیسر به نور ګرم نشي ، او د VPN سرعت به د پام وړ لوړ شي. په ورته وخت کې، د شبکې ټول مقررات چې په روټر کې ثبت شوي دي به اړونده پاتې شي. په نارنجي پای کې د حادثې په صورت کې، دا به سقوط وکړي او HAProxy به پیرودونکي محلي سرورونو ته انتقال کړي.
ستاسو د پاملرنې څخه مننه، وړاندیزونه او سمونونه ښه راغلاست.
سرچینه: www.habr.com