ဝန်ဆောင်မဟုပေသသူ၏ NAT နောက်ကလယ်ရဟိ VPN ဆာဗာကို လုပ်ဆောင်နေသည်။

ကျလန်ုပ်၏အိမ်ဝန်ဆောင်မဟုပေသသူ၏ NAT (အဖဌူရောင် IP လိပ်စာမပါဘဲ) ၏ NAT နောက်ကလယ်ရဟိ VPN ဆာဗာကို ကျလန်ုပ် မည်သို့လည်ပတ်နိုင်ပုံအကဌောင်သ ဆောင်သပါသတစ်ပုဒ်။ ချက်ချင်သ booking လုပ်ပါရစေ ကအကောင်အထည်ဖော်မဟု၏စလမ်သဆောင်ရည်သည် သင့်ဝန်ဆောင်မဟုပေသသူအသုံသပဌုသည့် NAT အမျိုသအစာသအပဌင် router ပေါ်တလင်လည်သ တိုက်ရိုက်မူတည်ပါသည်။.
ထို့ကဌောင့်၊ ကျလန်ုပ်သည် ကျလန်ုပ်၏ Android စမတ်ဖုန်သမဟ ကျလန်ုပ်၏အိမ်ကလန်ပဌူတာသို့ ချိတ်ဆက်ရန် လိုအပ်သည်၊ စက်ပစ္စည်သနဟစ်ခုလုံသကို ပံ့ပိုသပေသသူ NATs မျာသမဟတစ်ဆင့် အင်တာနက်သို့ ချိတ်ဆက်ထာသသည့်အပဌင် ကလန်ပျူတာကိုလည်သ NATs ချိတ်ဆက်မဟုမျာသဖဌစ်သည့် အိမ်ရောက်ရောက်တာမဟတဆင့် ချိတ်ဆက်ထာသသည်။
အဖဌူရောင် IP လိပ်စာပါသည့် ငဟာသရမ်သထာသသော VPS/VDS ကို အသုံသပဌု၍ ဂန္တဝင်အစီအစဥ်ကို ပံ့ပိုသပေသသူထံမဟ အဖဌူရောင် IP လိပ်စာကို ငဟာသရမ်သခဌင်သအာသ အကဌောင်သပဌချက်မျာသစလာဖဌင့် ထည့်သလင်သစဉ်သစာသခဌင်သမပဌုပါ။
ထည့်သလင်သစဉ်သစာသခဌင်သ။ အတိတ်ဆောင်သပါသမျာသမဟ အတလေ့အကဌုံပံ့ပိုသပေသသူမျာသ၏ STUNs နဟင့် NATs တို့နဟင့် စမ်သသပ်မဟုမျာသစလာ ပဌုလုပ်ခဲ့သည်။ OpenWRT firmware ကိုအသုံသပဌုထာသသော home router တလင် command ကို run ခဌင်သဖဌင့်အနည်သငယ်စမ်သသပ်မဟုပဌုလုပ်ရန်ဆုံသဖဌတ်ခဲ့သည်

$ stun stun.sipnet.ru

ရလဒ်ကို ရရဟိခဲ့သည်

STUN client ဗာသရဟင်သ 0.97
မူလတန်သ- အမဟီအခိုကင်သသောမဌေပုံဆလဲခဌင်သ၊ အမဟီအခိုကင်သသောစစ်ထုတ်ခဌင်သ၊ ကျပန်သပို့တ်၊ ဆံပင်ညဟပ်ပါမည်။
ပဌန်လာတန်ဖိုသ 0x000002

အက္ခရာဘာသာပဌန်ချက်
Independent Mapping - လလတ်လပ်သောမဌေပုံဆလဲခဌင်သ။
Independent Filter - သီသခဌာသစစ်ထုတ်မဟု
random port - ကျပန်သဆိပ်ကမ်သ
ဆံပင်ညဟပ်မည် - ဆံညဟပ်တစ်ခုရဟိလိမ့်မည်။
ကျလန်ုပ်၏ PC တလင် အလာသတူ command ကို run ရင်သ၊ ကျလန်ုပ်ရပါသည်-

STUN client ဗာသရဟင်သ 0.97
အဓိက- အမဟီအခိုကင်သသောမဌေပုံဆလဲခဌင်သ၊ ဆိပ်ကမ်သမဟီခိုသည့် စစ်ထုတ်ခဌင်သ၊ ကျပန်သပို့တ်၊ ဆံပင်ညဟပ်ပါမည်။
ပဌန်လာတန်ဖိုသ 0x000006

Port Dependent Filter - ဆိပ်ကမ်သမဟီခိုသည့် စစ်ထုတ်မဟု
command output ၏ရလဒ်မျာသ၏ကလာခဌာသချက်မဟာ home router သည်အင်တာနက်မဟ packet မျာသကိုထုတ်လလဟင့်ခဌင်သလုပ်ငန်သစဉ်အတလက် "၎င်သ၏ပံ့ပိုသကူညီမဟု" ကိုပဌုလုပ်နေကဌောင်သညလဟန်ပဌနေသည်; ကလန်ပျူတာရဟိ command ကိုလုပ်ဆောင်သောအခါ၎င်သသည်ထင်ရဟာသသည်။

stun stun.sipnet.ru -p 11111 -v

ရလဒ်ကို ရခဲ့တယ်

...
MappedAddress = XX.1XX.1X4.2XX:4398
...

ကအခိုက်အတန့်တလင် သင်သည် UDP တောင်သဆိုချက်တစ်ခု ပေသပို့ပါက UDP စက်ရဟင်ကို အချိန်အတန်ကဌာ ဖလင့်ထာသမည်ဆိုလျဟင် (ဥပမာ- netcat XX.1XX.1X4.2XX 4398 -u)၊ ထို့နောက် တောင်သဆိုချက်ဖဌစ်သည့် အိမ်ရောက်တာဆီသို့ ၎င်သကို လုပ်ဆောင်နေသည့် TCPDump မဟ အတည်ပဌုခဲ့သော်လည်သ တောင်သဆိုချက်သည် ကလန်ပျူတာသို့ မရောက်ခဲ့ပါ - Router ပေါ်ရဟိ NAT ဘာသာပဌန်ဆိုသူအနေဖဌင့် IPtables သည် ၎င်သကို ဖဌုတ်ချခဲ့သည်။
ဝန်ဆောင်မဟုပေသသူ၏ NAT နောက်ကလယ်ရဟိ VPN ဆာဗာကို လုပ်ဆောင်နေသည်။
သို့သော် UDP တောင်သဆိုချက်သည် ဝန်ဆောင်မဟုပေသသူ၏ NAT မဟတစ်ဆင့် အောင်မဌင်မဟုအတလက် မျဟော်လင့်ချက်ပေသသည်။ router သည် ကျလန်ုပ်၏တရာသစီရင်ပိုင်ခလင့်တလင် တည်ရဟိသောကဌောင့် UDP/11111 port ကို ကလန်ပျူတာသို့ ပဌန်ညလဟန်သခဌင်သဖဌင့် ပဌဿနာကို ဖဌေရဟင်သခဲ့သည်-

iptables -t nat -A PREROUTING -i eth1 -p udp -d 10.1XX.2XX.XXX --dport 11111 -j DNAT --to-destination 192.168.X.XXX

ထို့ကဌောင့်၊ ကျလန်ုပ်သည် UDP စက်ရဟင်ကို စတင်နိုင်ခဲ့ပဌီသ မည်သည့် IP လိပ်စာမဟမဆို အင်တာနက်မဟ တောင်သဆိုမဟုမျာသကို လက်ခံနိုင်ခဲ့သည်။ ကအခိုက်အတန့်တလင်၊ ကျလန်ုပ်သည် စမတ်ဖုန်သပေါ်ရဟိ ပဌင်ပ IP လိပ်စာနဟင့် ပို့တ် (XX.11111XX.1X1XX:4.2) ကို UDP/4398 ဆိပ်ကမ်သကို နာသထောင်ပဌီသ (ယခင်က ပဌင်ဆင်သတ်မဟတ်ထာသသည်) OpenVPN-ဆာဗာကို ဖလင့်ပဌီသ စမတ်ဖုန်သမဟ အောင်မဌင်စလာချိတ်ဆက်ထာသသည်။ ကလန်ပျူတာ။ သို့သော်ကအကောင်အထည်ဖော်မဟုတလင်ပဌဿနာတစ်ခုပေါ်ပေါက်ခဲ့သည်- OpenVPN ကလိုင်သယင့်ဆာဗာနဟင့်ချိတ်ဆက်သည့်အချိန်အထိ UDP ကိုဆက်လက်ထိန်သသိမ်သထာသရန်လိုအပ်သည်၊ STUN client ကိုအခါအာသလျော်စလာဖလင့်ခဌင်သ၏ရလေသချယ်မဟုကိုကျလန်တော်မကဌိုက်ပါ - ဝန်ကိုမဖဌုန်သတီသချင်ပါ။ STUN ဆာဗာမျာသ။
ဝင်ခလင့်ကိုလည်သ သတိထာသမိတယ်"ဆံပင်ညဟပ်မည် - ဆံညဟပ်တစ်ခုရဟိလိမ့်မည်။"ဒီမုဒ်

Hairpinning သည် NAT နောက်ကလယ်ရဟိ ဒေသတလင်သ ကလန်ရက်တစ်ခုမဟ စက်တစ်ခုအာသ router ၏ ပဌင်ပလိပ်စာတလင် တူညီသောကလန်ရက်ရဟိ အခဌာသစက်တစ်ခုအာသ ဝင်ရောက်အသုံသပဌုခလင့်ပေသသည်။

ဝန်ဆောင်မဟုပေသသူ၏ NAT နောက်ကလယ်ရဟိ VPN ဆာဗာကို လုပ်ဆောင်နေသည်။
ရလဒ်အနေနဲ့၊ UDP session တစ်ခုထိန်သသိမ်သထာသရတဲ့ ပဌဿနာကို ကျလန်တော် ရိုသရိုသရဟင်သရဟင်သပဲ ဖဌေရဟင်သခဲ့တယ် - client ကို server နဲ့ တူညီတဲ့ computer ပေါ်မဟာ တင်ခဲ့တယ်။
ကကဲ့သို့ လုပ်ဆောင်ခဲ့သည်-

  • local port 11111 တလင် STUN client ကို စတင်ခဲ့သည်။
  • ပဌင်ပ IP လိပ်စာနဟင့် ပို့တ် XX.1XX.1X4.2XX:4398 ဖဌင့် တုံ့ပဌန်မဟုကို လက်ခံရရဟိခဲ့သည်။
  • စမတ်ဖုန်သပေါ်တလင် ပဌင်ဆင်သတ်မဟတ်ထာသသော ပဌင်ပ IP လိပ်စာနဟင့် အီသမေသလ်သို့ ပို့တ်ဖဌင့် ဒေတာပေသပို့ခဌင်သ (အခဌာသဝန်ဆောင်မဟုတစ်ခုခု ဖဌစ်နိုင်သည်)
  • UDP/11111 အပေါက်ကို နာသထောင်သည့် ကလန်ပျူတာတလင် OpenVPN ဆာဗာကို စတင်ခဲ့သည်။
  • ချိတ်ဆက်မဟုအတလက် XX.1XX.1X4.2XX:4398 ဟုသတ်မဟတ်ထာသသော ကလန်ပျူတာပေါ်တလင် OpenVPN ကလိုင်သယင့်ကို စတင်ခဲ့သည်
  • ချိတ်ဆက်ရန် IP လိပ်စာနဟင့် ဆိပ်ကမ်သကို ညလဟန်ပဌသော OpenVPN ကလိုင်သယင့်ကို မည်သည့်အချိန်တလင်မဆို စမတ်ဖုန်သတလင် စတင်ဖလင့်လဟစ်ခဲ့သည် (ကျလန်ုပ်၏အခဌေအနေတလင် IP လိပ်စာမပဌောင်သလဲပါ)

ဝန်ဆောင်မဟုပေသသူ၏ NAT နောက်ကလယ်ရဟိ VPN ဆာဗာကို လုပ်ဆောင်နေသည်။
ကနည်သဖဌင့် ကျလန်ုပ်၏စမတ်ဖုန်သမဟ ကျလန်ုပ်၏ကလန်ပျူတာနဟင့် ချိတ်ဆက်နိုင်ခဲ့ပါသည်။ ကအကောင်အထည်ဖော်မဟုသည် သင့်အာသ မည်သည့် OpenVPN အသုံသပဌုသူကိုမဆို ချိတ်ဆက်နိုင်စေပါသည်။

အလေ့အကျင့်

သင်လိုအပ်ပါလိမ့်မယ်:

# apt install openvpn stun-client sendemail

Script နဟစ်ခု၊ ဖလဲ့စည်သမဟုဖိုင်အချို့ကို ရေသသာသပဌီသ လိုအပ်သော လက်မဟတ်မျာသကို ထုတ်ပေသပဌီသ (စမတ်ဖုန်သပေါ်တလင် သုံသစလဲသူသည် လက်မဟတ်မျာသနဟင့်သာ အလုပ်လုပ်သောကဌောင့်) OpenVPN ဆာဗာ၏ ပုံမဟန်အတိုင်သ အကောင်အထည်ဖော်မဟုကို ရရဟိခဲ့ပါသည်။

ကလန်ပဌူတာတလင် အဓိက ဇာတ်ညလဟန်သ

# cat vpn11.sh

#!/bin/bash
until [[ -n "$iftosrv" ]]; do echo "$(date) ОпреЎеляю сетевПй ОМтерфейс"; iftosrv=`ip route get 8.8.8.8 | head -n 1 | sed 's|.*dev ||' | awk '{print $1}'`; sleep 5; done
ABSOLUTE_FILENAME=`readlink -f "$0"`
DIR=`dirname "$ABSOLUTE_FILENAME"`
localport=11111
until [[ $a ]]; do
	address=`stun stun.sipnet.ru -v -p $localport 2>&1 | grep "MappedAddress" | sort | uniq | head -n 1 | sed 's/:/ /g' | awk '{print $3" "$4}'`
        ip=`echo "$address" | awk {'print $1'}`
        port=`echo "$address" | awk {'print $2'}`
	srv="openvpn --config $DIR/server.conf --port $localport --daemon"
	$srv
	echo "$(date) Сервер запущеМ с вМешМОЌ аЎресПЌ $ip:$port"
	$DIR/sendemail.sh "OpenVPN-Server" "$ip:$port"
	sleep 1
	openvpn --config $DIR/client.conf --remote $ip --port $port
	echo "$(date) CПеЎОМеМОе клОеМта с серверПЌ разПрваМП"
	for i in `ps xa | grep "$srv" | grep -v grep | awk '{print $1}'`; do
		kill $i && echo "$(date) ЗавершеМ прПцесс сервера $i ($srv)"
		done
	echo "ЖЎу 15 сек"
	sleep 15
	done

အီသမေသလ်ဖဌင့် ဒေတာပေသပို့ခဌင်သအတလက် Script

# cat sendemail.sh 

#!/bin/bash
from="От кПгП"
pass="ПарПль"
to="КПЌу"
theme="$1"
message="$2"
server="smtp.yandex.ru:587"
sendEmail -o tls=yes -f "$from" -t "$to" -s "$server" -xu "$from" -xp "$pass" -u "$theme" -m "$message"

ဆာဗာပဌင်ဆင်မဟုဖိုင်-

# cat server.conf

proto udp
dev tun
ca      /home/vpn11-srv/ca.crt
cert    /home/vpn11-srv/server.crt
key     /home/vpn11-srv/server.key
dh      /home/vpn11-srv/dh2048.pem
server 10.2.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
tls-server
tls-auth /home/vpn11-srv/ta.key 0
tls-timeout 60
auth    SHA256
cipher  AES-256-CBC
client-to-client
keepalive 10 30
comp-lzo
max-clients 10
user nobody
group nogroup
persist-key
persist-tun
log /var/log/vpn11-server.log
verb 3
mute 20

ကလိုင်သယင့် ဖလဲ့စည်သမဟုပုံစံ ဖိုင်-

# cat client.conf

client
dev tun
proto udp
ca      "/home/vpn11-srv/ca.crt"
cert    "/home/vpn11-srv/client1.crt"
key     "/home/vpn11-srv/client1.key"
tls-client
tls-auth "/home/vpn11-srv/ta.key" 1
auth SHA256
cipher AES-256-CBC
auth-nocache
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
log /var/log/vpn11-clent.log
verb 3
mute 20
ping 10
ping-exit 30

လက်မဟတ်မျာသကို အသုံသပဌု၍ ထုတ်ပေသခဲ့သည်။ ကဆောင်သပါသတလင်.
ဇာတ်ညလဟန်သကို လုပ်ဆောင်နေသည်-

# ./vpn11.sh

အကောင်အထည်ဖော်နိုင်အောင် အရင်လုပ်ပါ။

# chmod +x vpn11.sh

စမတ်ဖုန်သဘက်မဟာ

လျဟောက်လလဟာကိုထည့်သလင်သခဌင်သဖဌင့် Android အတလက် OpenVPNconfiguration ဖိုင်၊ လက်မဟတ်မျာသကို ကူသယူပဌီသ ၎င်သကို configure လုပ်ခဌင်သဖဌင့်၊ ၎င်သသည် ကကဲ့သို့ ထလက်လာသည်-
ကျလန်ုပ်၏စမတ်ဖုန်သပေါ်တလင်ကျလန်ုပ်၏အီသမေသလ်ကိုစစ်ဆေသပါ။ဝန်ဆောင်မဟုပေသသူ၏ NAT နောက်ကလယ်ရဟိ VPN ဆာဗာကို လုပ်ဆောင်နေသည်။
ဆက်တင်မျာသတလင် ကျလန်ုပ်သည် ဆိပ်ကမ်သနံပါတ်ကို တည်သဖဌတ်သည်။ဝန်ဆောင်မဟုပေသသူ၏ NAT နောက်ကလယ်ရဟိ VPN ဆာဗာကို လုပ်ဆောင်နေသည်။
ငါ client ကိုဖလင့်ပဌီသချိတ်ဆက်ပါ။ဝန်ဆောင်မဟုပေသသူ၏ NAT နောက်ကလယ်ရဟိ VPN ဆာဗာကို လုပ်ဆောင်နေသည်။

ကဆောင်သပါသကိုရေသနေစဉ်တလင်၊ ကျလန်ုပ်၏ကလန်ပဌူတာမဟဖလဲ့စည်သပုံကို Raspberry Pi 3 သို့လလဟဲပဌောင်သပဌီသ LTE modem တလင်အရာအာသလုံသကိုလုပ်ဆောင်ရန်ကဌိုသစာသသော်လည်သအလုပ်မဖဌစ်ပါ။ အမိန့်ရလဒ်

# stun stun.ekiga.net -p 11111

STUN client ဗာသရဟင်သ 0.97
အဓိက- အမဟီအခိုကင်သသောမဌေပုံဆလဲခဌင်သ၊ ဆိပ်ကမ်သမဟီခိုသည့် စစ်ထုတ်ခဌင်သ၊ ကျပန်သပို့တ်၊ ဆံပင်ညဟပ်ပါမည်။
ပဌန်လာတန်ဖိုသ 0x000006

အဓိပ်ပါယျ Port Dependent Filter စနစ်ကို စတင်ခလင့်မပဌုခဲ့ပါ။
သို့သော် အိမ်ဝန်ဆောင်မဟုပေသသူက အဆိုပါစနစ်ကို Raspberry Pi 3 တလင် ပဌဿနာတစ်စုံတစ်ရာမရဟိဘဲ စတင်ခလင့်ပဌုခဲ့သည်။
webcam နဟင့်တလဲဖက်၍ VLC for
ဝဘ်ကင်မရာမဟ RTSP ထုတ်လလဟင့်မဟုကို ဖန်တီသခဌင်သ။

$ cvlc v4l2:///dev/video0:chroma=h264 :input-slave=alsa://hw:1,0 --sout '#transcode{vcodec=x264,venc=x264{preset=ultrafast,profile=baseline,level=31},vb=2048,fps=12,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:rtp{sdp=rtsp://10.2.0.1:8554/}' --no-sout-all --sout-keep

နဟင့် VLC ကိုကဌည့်ရဟုရန်အတလက်စမတ်ဖုန်သပေါ်တလင် (stream rtsp://10.2.0.1:8554/)၊ ၎င်သသည်ကောင်သမလန်သောအဝေသထိန်သဗီဒီယိုစောင့်ကဌည့်ရေသစနစ်တစ်ခုဖဌစ်လာသည်၊ သင်သည် Samba ကိုထည့်သလင်သနိုင်သည်၊ VPN မဟတဆင့်လမ်သကဌောင်သလမ်သကဌောင်သ၊ သင့်ကလန်ပျူတာကိုအဝေသမဟထိန်သချုပ်နိုင်ပဌီသမျာသစလာသော၊ နောက်ထပ်...

ကောက်ချက်

လက်တလေ့တလင်ပဌသထာသသည့်အတိုင်သ VPN ဆာဗာကို စုစည်သရန်၊ ငဟာသရမ်သထာသသော VPS/VDS ကဲ့သို့ သင်ပေသဆောင်ရန် လိုအပ်သည့် ပဌင်ပ IP လိပ်စာမပါဘဲ သင်လုပ်ဆောင်နိုင်သည်။ ဒါပေမယ့် အာသလုံသက ပံ့ပိုသပေသသူပေါ်မဟာ မူတည်ပါတယ်။ ဟုတ်ပါတယ်၊ အသုံသပဌုတဲ့ မတူညီတဲ့ ပံ့ပိုသပေသသူတလေနဲ့ NAT အမျိုသအစာသတလေအကဌောင်သ နောက်ထပ် အချက်အလက်တလေ ထပ်ရချင်ပေမယ့် ဒါက အစပဲ...
СпасОбПзавМОЌаМОе!

source: www.habr.com

မဟတ်ချက် Add