
SSH Jump Host
SSH Jump Host ဆိုတာကတော့ Server ၂ လုံး သို့မဟုတ် ၂ လုံးထက်ပိုတဲ့ Server တွေကို တစ်ဆင့်စီ ခုန်ပြီး နောက်ဆုံး Server ကို Login ဝင်ရောက်ခြင်းဖြစ်ပါတယ်။ အဲ့လို ရှင်းပြလိုက်ရင် ရှုပ်သွားမှာပါပဲ။ ဥပမာ အနေနဲ့ အောက်က ပုံလေးကို ကြည့်လိုက်ပါ။ ပုံမှာတော့ User က Login …
SSH Jump Host ဆိုတာကတော့ Server ၂ လုံး သို့မဟုတ် ၂ လုံးထက်ပိုတဲ့ Server တွေကို တစ်ဆင့်စီ ခုန်ပြီး နောက်ဆုံး Server ကို Login ဝင်ရောက်ခြင်းဖြစ်ပါတယ်။ အဲ့လို ရှင်းပြလိုက်ရင် ရှုပ်သွားမှာပါပဲ။ ဥပမာ အနေနဲ့ အောက်က ပုံလေးကို ကြည့်လိုက်ပါ။

ပုံမှာတော့ User က Login ဝင်ချင်တာက Production Server ဆီကို ဖြစ်ပါတယ်။ ဒါပေမယ့် တကယ် Login ဝင်တာကတော့ Jump Server ဆီကို Login ဝင်လိုက်တာပါ။ အဲ့ကနေ User Authentication မှန်ကန်ပါက Production Server ဆီကို အလိုလျောက် TCP Traffic ကို Forward လုပ်ပေးပါတယ်။ အဲဒီလို Login ဝင်ဖို့ ခက်ခက်ခဲခဲတော့မဟုတ်ပါဘူး။ အောက်က Command လေးအတိုင်း လုပ်ဆောင်နိုင်ပါတယ်။
ssh -J [email protected] [email protected]
အဲဒီ Command မှာ -J ဆိုတာကတော့ 18.xx.xx.55 ဆိုတဲ့ Server ကို orcakrilozona ဆိုတဲ့ User Login ဝင်ရောက်ဖို့အတွက် Jump Host ဖြစ်တဲ့ 207.xx.xx.93 က root User ကနေတစ်ဆင့် ခုန်ပျံကျော်လွှား သွားဖို့ ခိုင်းစေလိုက်တာပဲဖြစ်ပါတယ်။ Jump Host ကနေ တစ်ဆင့် Production Server ကို ဆက်လက်ပြီး TCP Forward လုပ်ပေးမှာဖြစ်ပါတယ်။ အဲဒီလို Login ဝင်သွားတဲ့အခါ ကိုယ်ခိုင်းလိုက်တဲ့အတိုင်း တကယ်ပဲ အလုပ်လုပ်သလား၊ ကိုယ် Login ဝင်နေတာ Jump Host ကနေ တစ်ဆင့် ဝင်နေတာ ဟုတ်ရဲ့လားဆိုတာ Production Server မှာ w တစ်လုံးထဲရိုက်ပြီး ပြန်စစ်ကြည့်ရအောင်။
[[email protected] ~]$ w
13:22:57 up 5 days, 22:18, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
orcakril pts/0 207.xx.xx.93 13:22 1.00s 0.01s 0.01s w
Command ရဲ့ Output မှာတော့ ဒီနေရာကို 207.xx.xx.93 ကနေ ဝင်နေတယ်ဆိုတာ မြင်ရမှာပါ။
Jump Host Connection Configuration
အကယ်၍များ Jump Server သို့မဟုတ် Production Server ကို ချိတ်ဆက်တဲ့အခါ ssh key များ လိုအပ်နေရင် ဘယ်လိုလုပ်ရမလဲဆိုတော့… အကောင်းဆုံးကတော့ အောက်ကအတိုင်း Client စက်ထဲမှာ သက်ဆိုင်ရာ User ရဲ့ Home Directory အောက်က .ssh ဆိုတဲ့ Folder ထဲမှာ Configuration File ရေးထားလိုက်ပါ။
[[email protected] ~]$ cat ~/.ssh/config
Host 207.xx.xx.93
HostName 207.xx.xx.93
User root
Host 18.xx.xx.55
HostName 18.xx.xx.55
IdentityFile /home/orcakrilozona/.ssh/myawskey
User orcakrilozona
ဒီလို Configuration File လေး ရေးထားလိုက်ရင် Jump Host ကို သုံးရတာ အရမ်းလွယ်ကူသွားပါပြီ။
Why do we use Jump Host?
Jump Host ကို ဘာလို့ အသုံးပြုရမှာလဲ၊ ဘယ်လိုနေရာမှာ အသုံးဝင်လဲ ဆိုတော့ ဥပမာအားဖြင့် Production Server ရဲ့ SSH Port ကို Firewall က ပိတ်ထားပြီး Jump Host IP တစ်ခုတည်းကိုသာ ချိတ်ဆက်ခွင့် ပေးထားလိုက်မယ်ဆိုရင် မလိုအပ်တဲ့ SSH Brute Force တွေ၊ SSH Password Guessing တွေကို ကာကွယ်နိုင်မှာပါ။
နောက်ပြီး အကယ်၍များ ကိုယ်ဝင်ရောက်ချင်တဲ့ Production Server ဟာ Load Balancer နဲ့တကွ Firewall ပါ အပီအပြင် အလုံပိတ်ထားတာမျိုးဖြစ်နေပြီး အလွယ်တကူ ဝင်မရပါက အောက်က ပုံထဲကအတိုင်း Jump Host လေးထားပြီး အလွယ်တကူ ဝင်ရောက်နိုင်ပါတယ်။

အလုပ်ရှုပ်နေတာနဲ့ မရေးဖြစ်တာကြာသွားတယ်။ စာရှည်သွားပေမယ့် အဆုံးထိ ဖတ်ပေးခဲ့သူများကို ကျေးဇူးတင်ပါကြောင်း။ Idea တစ်ခုခုရသွားတယ်ဆိုရင်ပဲ ကျေနပ်ပါကြောင်း 😀