Linux VPS တွင် SSH ကို လုံခြုံအောင် လုပ်နည်း
အများပြည်သူသုံး VPS သည် အွန်လိုင်းဖြစ်သွားပြီး မိနစ်အနည်းငယ်အတွင်း အလိုအလျောက် login ကြိုးစားမှုများ ခံရပါသည်။ ဤအဆင့်များက SSH ကို တိုက်ခိုက်ရန် သိသိသာသာ ခက်စေပါသည်။ ဤလမ်းညွှန်ကို Ubuntu သို့မဟုတ် Debian အတွက် ရေးထားပါသည်။ Server မဖန်တီးရသေးပါက Linux VPS ငှားရမ်းပြီး သန့်ရှင်းသော image မှ စတင်နိုင်ပါသည်။ ဒုတိယ window မှ ဆက်တင်အသစ်များကို စမ်းသပ်ပြီးမှသာ လက်ရှိ SSH session ကို ပိတ်ပါ။
၁။ sudo ပါသော ပုံမှန် အသုံးပြုသူ ဖန်တီးခြင်း
adduser deploy
usermod -aG sudo deploy၂။ Password အစား SSH key သုံးခြင်း
သင့်ကိုယ်ပိုင် ကွန်ပျူတာတွင်:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPPassword ပိတ်မည့်အရင် key ဖြင့် တစ်ကြိမ် login ဝင်ပြီး အလုပ်လုပ်ကြောင်း အတည်ပြုပါ။
၃။ Password နှင့် root login ပိတ်ခြင်း
/etc/ssh/sshd_config.d/99-hardening.conf ဖိုင်ကို ဖန်တီးပါ:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Syntax ကို စစ်ပြီး service ကို reload လုပ်ပါ။ Ubuntu နှင့် Debian တွင် service အမည်မှာ ssh ဖြစ်ပြီး RHEL အခြေခံ စနစ်များတွင် sshd ဖြစ်သည်:
sudo sshd -t && sudo systemctl reload sshဒုတိယ terminal ဖွင့်ပြီး ပြန် login ဝင်ပါ။ ထိုမှသာ အဟောင်း session ကို ပိတ်ပါ။
၄။ Firewall ဖွင့်ခြင်း
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseလိုအပ်သော port များကိုသာ ဖွင့်ပါ၊ ဥပမာ web server အတွက် 80 နှင့် 443။ Cloud console ရှိ firewall rule ဖြင့် SSH ကို သင့်ကိုယ်ပိုင် IP address သို့သာ ကန့်သတ်နိုင်ပါသည်။
၅။ Fail2ban ဖြင့် အကြိမ်ရေများစွာ ကျရှုံးမှုများကို ပိတ်ဆို့ခြင်း
sudo apt install -y fail2ban/etc/fail2ban/jail.local ဖိုင်ကို ဖန်တီးပါ:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd၆။ Security update များကို အလိုအလျောက် ထည့်သွင်းခြင်း
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades၇။ ရွေးချယ်စရာ အပိုများ
- SSH port ကို ပြောင်းခြင်းက log ဆူညံမှုကို လျှော့ချပေးသော်လည်း, ကိုယ်တိုင်တွင် လုံခြုံရေးအစီအမံ မဟုတ်ပါ။
- Private key ကို passphrase ဖြင့် ကာကွယ်ပြီး ဘေးကင်းသော နေရာတွင် backup သိမ်းထားပါ။
lastနှင့်sudo journalctl -u ssh --since todayဖြင့် login များကို ပြန်စစ်ပါ။- Server ကို ပြင်ဆင်ပြီးသည်နှင့် snapshot ယူထားပါ၊ ထို့ကြောင့် သန့်ရှင်းသော အခြေခံအနေသို့ ပြန်လည်ရယူနိုင်ပါမည်။
ဝင်၍မရတော့ပါက cloud panel ရှိ browser console ကို သုံးပြီး login ဝင်ကာ configuration ကို ပြင်ပါ။ နောက်အလွှာ ကာကွယ်ရေးအတွက် DDoS ကာကွယ်ရေး လမ်းညွှန် ကို ကြည့်ပါ။
မကြာခဏ မေးလေ့ရှိသော မေးခွန်းများ
Root login ပိတ်ခြင်း လုံခြုံပါသလား?
ရပါသည်၊ သင် sudo အသုံးပြုသူကို အရင်ဖန်တီးပြီး key အလုပ်လုပ်ကြောင်း စမ်းသပ်ထားပါက။ sudo ဖြင့် စီမံခန့်ခွဲရေး command များကို ဆက်လက် run နိုင်ပါသည်။
Key သာ သုံးပါက Fail2ban လိုအပ်ပါသလား?
ရွေးချယ်စရာ ဖြစ်ပါသည်။ Password login ပိတ်ထားပါက brute force အောင်မြင်နိုင်မည် မဟုတ်ပေမယ့်, Fail2ban က log ဆူညံမှုနှင့် load ကို လျှော့ချပေးပါသည်။
SSH key ပျောက်သွားပါက ဘာလုပ်ရမလဲ?
Cloud panel ရှိ console ကို အသုံးပြု၍ login ဝင်ပြီး ~/.ssh/authorized_keys ထဲသို့ public key အသစ် ထည့်ကာ အဟောင်းကို ဖယ်ရှားပါ။