ကိုယ်ပိုင် L2TP/IPSec VPN လုပ်မယ်
အရင်ဆုံး L2TP/IPSec ဆိုတာဘာလဲ ကြည့်ရအောင်။
L2TP ရဲ့ အရှည်က Layer Two Tunneling Protocol ဖြစ်ပြီး IPSec ဆိုတာက Internet Protocol Security ကိုခေါ်တာပါ။
L2TP ကတော့ နာမည်အတိုင်း OSI Model ရဲ့ Layer 2 ဖြစ်တဲ့ Data Link layer မှာ အလုပ်လုပ်တာဖြစ်ပြီး အဓိကအနေနဲ့ Computer ၂ခုကြားမှာ Virtual Tunnel တခုပြုလုပ်ပြီး Information အပေးအယူကို Virtual Tunnel ကနေတဆင့်လုပ်ပေးတာပါ။ L2TP က Tunnel ဦးစားပေးဖြစ်တာမို့ Authentication နဲ့ Encryption က စိတ်ချရတဲ့အနေအထားမှာ မရှိပါဘူး။ ဒါကြောင့် Layer 3 Security Application တခုဖြစ်တဲ့ IPSec ကိုပါတွဲသုံးရပါတယ်။
Requirements
Server OS အနေနဲ့ကတော့ ကျွန်တော်တို့ Ubuntu ရဲ့ Latest LTS build တခုခုသုံးပါမယ်။ Client ဖက်ကတော့ L2TP/IPSec ကို Desktop နဲ့ Mobile OS တော်တော်များများက Out of Box support လုပ်ကြတဲ့အတွက် သက်ဆိုင်ရာ network settings ကို access လုပ်နိုင်ရင်ရပါတယ်။
ကျွန်တော်ဆက်ပြောမယ့် Process ကို ဖုန်းပဲရှိပြီး PC မတတ်နိုင်တဲ့ သူများလဲ ဖုန်းမှာ Termius ဒါမှမဟုတ် JuiceSSH လို SSH client မျိုးသုံးပြီး လုပ်နိုင်တာဖြစ်တဲ့အတွက် သူများတွေကို ကူညီပေးချင်တယ် PC မရှိလို့ဆိုတဲ့ သူတွေရော PC မတတ်နိုင်လို့ စူးစမ်းချင်တာတွေကို မြိုသိပ်ထားရတဲ့သူတွေရော အဆင်ပြေကြမှာပါ။
Pre-Installation
Setup လုပ်ဖို့အတွက်ကို အရင်ဆုံး Public IPv4 ရှိတဲ့ Server လိုပါတယ်။ စျေးအသက်သာဆုံး Option ကတော့ Virtual Private Server (VPS) တွေပါ။ စျေးအရမ်းပေါတဲ့ Option တွေရှိပေမယ့် Asia ဖက်က location တွေကို provide လုပ်တဲ့ VPS တွေကတော့ တလကို US$5 ဝန်းကျင်ပေးရပါတယ်။ လူသုံးများတဲ့ VPS provider တွေကတော့ Amazon AWS Lightsail, Digital Ocean, OVH, Vultr နဲ့ Linode စတာတွေပါ။ ကျွန်တော်က Linode သုံးပေမယ့် နောက်ဆုံးမှာရေးထားတဲ့အကြောင်းက မြန်မာကို Linode က Account Validate လွယ်လွယ်မလုပ်ပေးပါဘူး။ OVH နဲ့ Vultr ကလဲ မြန်မာက တချို့ Card တွေကို လက်မခံပါဘူး။ ခုအခြေအနေမှာ အကောင့်သစ်စဖွင့်ဖို့ အဖြစ်နိုင်ဆုံးကတော့ Amazon AWS Lightsail နဲ့ Digital Ocean ဖြစ်ပြီး Digital Ocean အသုံးပြုမယ်ဆိုရင်တော့ Free Credit နဲ့ VPS ကို ဖျက်လိုက် အသစ်ပြန်ယူလိုက်မလုပ်မိဖို့ သတိထားရပါမယ်။ Credit တွေကို နှမြောတယ်ဆိုရင် Specification မြင့်မြင့်နဲ့ VPS ကိုယူပြီး Credit မကုန်ခင်မှာ ဖျက်ပြီး ကိုယ်တတ်နိုင်တာကို ပြန်ပြောင်းတာက ပိုစိတ်ချရပါတယ်။
Ubuntu Server OS အသုံးပြုထားတဲ့ Server တခုအသင့်ရှိပြီဆိုရင် အဲ့ဒီ Server ကို SSH အသုံးပြုပြီး root terminal access ရှိရပါမယ်။ မလုပ်တတ်သေးရင် Server provider ရဲ့ Help & Support Documentation မှာ လေ့လာနိုင်ပါတယ်။ SSH Client အနေနဲ့တော့ Linux OS တွေအသုံးပြုရင် Terminal ကနေ တိုက်ရိုက်အသုံးပြုနိုင်မှာ ဖြစ်ပြီး Windows OS ဆိုရင်တော့ ကျွန်တော်သုံးဖြစ်တာက Putty ဒါမှမဟုတ်ရင် Termius ပါ။ Mobile Phone ကနေဆိုရင်တော့ Termius ကိုအသုံးပြုနိုင်ပါတယ်။
Installation
Installation စလုပ်ဖို့အတွက် Server ရဲ့ root မှာရှိနေရပါမယ်။ Amazon AWS အသုံးပြုနေသူဆိုရင် terminal user ကို root ပြောင်းဖို့အတွက်
sudo -i
ကိုအသုံးပြုနိုင်ပါတယ်။ ကိုယ်က root ရောက်နေပြီးသားဆို ဒီအဆင့်ကို ကျော်သွားလို့ရပါတယ်။
ပထမဆုံး ကျွန်တော်တို့ရဲ့ server က repositories တွေ update ဖြစ်နေဖို့နဲ့ လိုအပ်တဲ့ component တွေလဲ up to date ဖြစ်နေဖို့ အောက်က command ၂ခုကို run ရပါမယ်။ Install လုပ်မလုပ် confirmation အနေနဲ့ (Y/N) လို့မေးလာခဲ့ရင် Y ကို ရိုက်ပြီး Enter ဖို့လိုပါမယ်။
apt-get update
apt upgrade
ဒီအဆင့်ပြီးသွားရင်တော့ L2TP/IPSec ရဲ့ Configuration Script ကို Download ရယူပါမယ်။
get https://git.io/vpnsetup -O vpn.sh
ဒီ script ကို Lin Song နဲ့ အခြားသော Contributor တွေက Develop လုပ်ထားတာဖြစ်ပြီး အသေးစိတ်လေ့လာချင်ရင်တော့ ဒီ Link ကနေ မူရင်း Project ကိုလေ့လာနိုင်ပါတယ်။
အခုဆိုရင် installation script က server ပေါ်ရောက်နေမှာဖြစ်ပြီး script ကို မ run ခင်မှာ ပြင်ပေးရမှာလေးတွေရှိပါတယ်။ script ကိုပြင်ဖို့အတွက်
nano vpn.sh
command ကိုအသုံးပြုတဲ့အခါ nano text editor နဲ့ script file ပွင့်လာပါလိမ့်မယ်။
Script ထဲက YOUR_IPSEC_PSK = ''
နေရာမှာ မိမိအသုံးပြုလိုတဲ့ pre-shared key ကို quote ၂ခု ကြားမှာထည့်ပါ။ pre-shared key ဟာ username, password နဲ့မတူဘဲ server ကို connect လုပ်မယ့် client တိုင်းက pre-shared key တခုထဲကို သုံးရမှာပါ။
ဒီနောက်မှာတော့ YOUR_USERNAME = ''
နဲ့ YOUR_PASSWORD = ''
နေရာမှာ ကိုယ်ထားချင်တဲ့ username နဲ့ password ကို quote ၂ခုကြားမှာ ထည့်ပါ။ ပြီးတဲ့အခါ CTRL + X
ကိုနှိပ်ပြီး Save modified buffer? လို့မေးလာရင် Y
ကိုနှိပ်ပေးပါ။ ဒီနောက် filename ကိုမပြောင်းပဲ Enter လိုက်ရင် Save သွားပါပြီ။
လိုအပ်တာတွေလဲ ပြောင်းပြီးသွားပြီဖြစ်တဲ့အတွက် script ကို run လို့ရပါပြီ။
sh vpn.sh
နောက်ဆုံးမှာ ကိုယ်ထားခဲ့တဲ့ pre-shared key, username နဲ့ password တွေပေါ်လာပြီဆိုရင်တော့ Installation အောင်မြင်သွားပါပြီ။
Additional Users
ပုံမှန်ဆိုရင်တော့ User Account တခုကို multiple users သုံးလို့ရပေမယ့် အကြောင်းအမျိုးမျိုးကြောင့် User Account အသစ်တွေလိုကောင်းလိုပါလိမ့်မယ်။ အဲ့အခါ ကျွန်တော်တို့က L2TP ရဲ့ secret file မှာ Account အသစ်တွေထပ်ပေါင်းပေးလို့ရပါတယ်။ User အသစ်တွေ ထပ်ပေါင်းဖို့
nano /etc/ppp/chap-secrets
ကိုဝင်လိုက်တဲ့အခါ ကိုယ် Installation Step မှာ Create လုပ်ခဲ့တဲ့ User Account ကိုတွေ့ရမှာပါ။ ရှိပြီးသား User ရဲ့ အောက်တလိုင်းကိုဆင်းပြီး username နဲ့ password ကို လိုချင်တဲ့အတိုင်ပေးပြီး ကျန်တဲ့ block တွေကိုတော့ အပေါ်ကအတိုင်း ပြန်ဖြည့်ပေးပြီး CTRL + X
ကိုနှိပ်ပါ။ အဲ့ဒီနောက်မှာတော့ Y
ကိုနှိပ်ပြီး Enter နှိပ်လိုက်ရင် User အသစ်ထည့်တဲ့ အဆင့်ပြီးပါပြီ။
Client Setup
Client Device ကနေ Connect လုပ်ဖို့ သက်ဆိုင်ရင် Device ရဲ့ VPN နဲ့ ပတ်သတ်တဲ့ Settings ကိုသွားပြီး Profile အသစ်ပေါင်းထည့်ပေးရပါမယ်။ Profile ရဲ့ Type က L2TP/IPSec PSK ကို ရွေးထားရပါမယ်။ Server/Host နေရာမှာ Server ရဲ့ Public IPv4 address ကိုဖြည့်ပေးရပါမယ်။ အဲ့ဒီနောက်မှာတော့ Pre-shared key, Username နဲ့ Password ကိုပဲဖြည့်ပေးပြီး ကျန်တဲ့ အကွက်တွေကို အလွတ်ထားခဲ့ပြီး Profile ကို Save လိုက်ပါ။ ပြီးရင်တော့ Profile ကိုနှိပ်ပြီး Connect လုပ်နိုင်ပါပြီ။
အခုဆိုရင် PC မလိုပဲနဲ့ VPN တခု Setup လုပ်နိုင်ပြီဖြစ်သလို အသုံးပြုသူအတွက်လဲ ဘာ Software/Application မှာထည့်သွင်းစရာမလိုဘဲ VPN ကို အသုံးပြုနိုင်မှာဖြစ်ပါတယ်။