เมื่อคุณได้รับ Cloud VPS ใหม่ สิ่งแรกที่หลายคนทำคือเริ่ม Deploy แอปพลิเคชันทันที แต่นั่นเป็นสิ่งที่ไม่ควรทำ เพราะ VPS ที่เพิ่ง Deploy ใหม่ยังไม่ได้รับการตั้งค่าความปลอดภัยและประสิทธิภาพที่เหมาะสม บทความนี้จะพาคุณผ่านขั้นตอนสำคัญที่ต้องทำก่อนใช้งาน VPS จริง เพื่อให้ระบบมีความปลอดภัย เสถียร และพร้อมใช้งานในระยะยาว
สิ่งที่ต้องเตรียมก่อนเริ่ม
- IP Address ของ VPS (ได้รับจาก Email ยืนยัน)
- Username และ Password ของ root (หรือ SSH Key)
- โปรแกรม SSH Client เช่น Terminal (macOS/Linux) หรือ PuTTY (Windows)
ขั้นตอนที่ 1 — เชื่อมต่อ VPS ผ่าน SSH
เปิด Terminal แล้ว SSH เข้า VPS ด้วย root:
ssh root@YOUR_VPS_IP
ครั้งแรกจะมีคำถามให้ยืนยัน fingerprint พิมพ์ yes แล้วกด Enter จากนั้นใส่ Password ที่ได้รับมา
ขั้นตอนที่ 2 — อัปเดต Package ทั้งหมด
สิ่งแรกที่ต้องทำคืออัปเดต Package ให้เป็นเวอร์ชันล่าสุด เพื่อปิดช่องโหว่ด้านความปลอดภัยที่อาจมีอยู่ใน Package เก่า
apt update && apt upgrade -y
คำสั่งนี้จะใช้เวลาสักครู่ รอจนเสร็จสมบูรณ์ก่อนไปขั้นตอนถัดไป หากมีข้อความถามให้กด Enter เพื่อยืนยัน
ขั้นตอนที่ 3 — ตั้งค่า Hostname และ Timezone
ตั้งชื่อ Server ให้จำได้ง่าย และตั้ง Timezone ให้ตรงกับประเทศไทย เพื่อให้ Log ต่างๆ แสดงเวลาถูกต้อง
# ตั้ง Hostname
hostnamectl set-hostname myserver
# ตั้ง Timezone เป็นกรุงเทพ
timedatectl set-timezone Asia/Bangkok
# ตรวจสอบ
timedatectl status
ขั้นตอนที่ 4 — สร้าง User ใหม่ และอย่าใช้ root
การใช้ root โดยตรงทุกครั้งเป็นความเสี่ยงด้านความปลอดภัย เพราะ root มีสิทธิ์ทำทุกอย่างบนระบบ ควรสร้าง User ปกติที่ใช้ sudo แทน
# สร้าง user ใหม่ (เปลี่ยน somchai เป็นชื่อที่ต้องการ)
adduser somchai
# เพิ่ม user เข้ากลุ่ม sudo
usermod -aG sudo somchai
# ทดสอบ sudo
su - somchai
sudo whoami # ควรแสดง root
ขั้นตอนที่ 5 — ตั้งค่า SSH Key (แนะนำอย่างยิ่ง)
SSH Key ปลอดภัยกว่า Password มาก เพราะไม่มีการส่ง Password ผ่านเครือข่าย ทำขั้นตอนนี้บนเครื่องของคุณ (ไม่ใช่บน VPS):
# บนเครื่องของคุณ — สร้าง SSH Key pair
ssh-keygen -t ed25519 -C "[email protected]"
# กด Enter ทุกคำถาม (หรือใส่ passphrase เพื่อความปลอดภัยเพิ่ม)
# คัดลอก Public Key ไปยัง VPS
ssh-copy-id somchai@YOUR_VPS_IP
# ทดสอบ login ด้วย key
ssh somchai@YOUR_VPS_IP
ขั้นตอนที่ 6 — ปรับค่า SSH ให้ปลอดภัยขึ้น
แก้ไขไฟล์ SSH config เพื่อปิด root login และเปลี่ยน Port (ไม่บังคับแต่แนะนำ):
sudo nano /etc/ssh/sshd_config
ค้นหาและแก้ไขค่าต่อไปนี้:
# ปิด root login
PermitRootLogin no
# ปิด Password Authentication (หลังตั้ง SSH Key แล้ว)
PasswordAuthentication no
# เปลี่ยน Port (ตัวเลือก — เลือกระหว่าง 1024-65535)
Port 2222
บันทึกไฟล์แล้ว Restart SSH:
sudo systemctl restart sshd
สำคัญ: อย่าปิด Terminal เดิมจนกว่าจะทดสอบ login ด้วย session ใหม่สำเร็จก่อน
ขั้นตอนที่ 7 — ตั้งค่า Firewall (UFW)
UFW (Uncomplicated Firewall) เป็น Firewall ที่ใช้งานง่ายบน Ubuntu/Debian ตั้งค่าให้อนุญาตเฉพาะ Port ที่จำเป็น:
# ติดตั้ง UFW (มักติดตั้งมาแล้ว)
apt install ufw -y
# ตั้ง Default rules
ufw default deny incoming
ufw default allow outgoing
# อนุญาต SSH (เปลี่ยน 22 เป็น Port ที่ตั้งไว้ถ้าเปลี่ยน)
ufw allow 22/tcp
# อนุญาต HTTP และ HTTPS
ufw allow 80/tcp
ufw allow 443/tcp
# เปิดใช้งาน UFW
ufw enable
# ตรวจสอบสถานะ
ufw status verbose
ขั้นตอนที่ 8 — ติดตั้ง Fail2ban
Fail2ban ช่วยป้องกันการโจมตีแบบ Brute Force โดยการ Block IP ที่พยายาม Login ผิดหลายครั้ง:
# ติดตั้ง Fail2ban
apt install fail2ban -y
# เปิดใช้งานและ Start
systemctl enable fail2ban
systemctl start fail2ban
# ตรวจสอบสถานะ
fail2ban-client status
ขั้นตอนที่ 9 — ตั้งค่า Automatic Security Updates
ตั้งให้ระบบอัปเดต Security Patch โดยอัตโนมัติ เพื่อไม่ต้องคอยอัปเดตเองทุกครั้ง:
apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades
เลือก Yes เมื่อถามว่าต้องการ Enable automatic updates
ขั้นตอนที่ 10 — ตรวจสอบ Swap Memory
ตรวจสอบว่า VPS มี Swap Memory หรือไม่ โดยเฉพาะ VPS RAM น้อย (1-2 GB) ควรมี Swap เพื่อรองรับเมื่อ RAM เต็ม:
# ตรวจสอบ Swap ปัจจุบัน
free -h
swapon --show
# ถ้าไม่มี Swap ให้สร้าง 2GB Swap file
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# ทำให้ Swap อยู่หลัง Reboot
echo '/swapfile none swap sw 0 0' >> /etc/fstab
ขั้นตอนที่ 11 — ติดตั้ง Package พื้นฐานที่จำเป็น
ติดตั้ง Tools ที่ใช้บ่อยในการจัดการ VPS:
apt install -y \
curl \
wget \
git \
htop \
net-tools \
unzip \
vim \
tmux \
ntp
ตรวจสอบความเรียบร้อยทั้งหมด
หลังทำทุกขั้นตอนแล้ว ลองตรวจสอบสถานะระบบโดยรวม:
# ดูข้อมูล System
hostnamectl
# ดูการใช้ Disk
df -h
# ดูการใช้ RAM และ Swap
free -h
# ดูสถานะ Firewall
ufw status
# ดูสถานะ Fail2ban
fail2ban-client status
# ดูสถานะ Services หลัก
systemctl status sshd ufw fail2ban
Checklist สรุป
| ขั้นตอน | คำสั่งหลัก | สำคัญมาก |
|---|---|---|
| อัปเดต Package | apt update && apt upgrade -y | ✅ |
| ตั้ง Hostname & Timezone | hostnamectl, timedatectl | ✅ |
| สร้าง User ใหม่ | adduser, usermod -aG sudo | ✅ |
| ตั้งค่า SSH Key | ssh-keygen, ssh-copy-id | ✅ |
| ปิด Root Login | แก้ไข sshd_config | ✅ |
| ตั้งค่า UFW Firewall | ufw enable | ✅ |
| ติดตั้ง Fail2ban | apt install fail2ban | ✅ |
| ตั้ง Auto Updates | unattended-upgrades | แนะนำ |
| สร้าง Swap | fallocate, mkswap | แนะนำ |
| ติดตั้ง Tools พื้นฐาน | apt install curl wget git htop | แนะนำ |
สรุป
การทำขั้นตอนเหล่านี้ตั้งแต่ต้นจะช่วยให้ VPS ของคุณมีความปลอดภัยและพร้อมใช้งานในระยะยาว ใช้เวลาไม่เกิน 15-20 นาที แต่ช่วยป้องกันปัญหาที่อาจเกิดขึ้นในภายหลังได้มาก หลังจากนี้คุณสามารถเริ่ม Install Service ต่างๆ เช่น Nginx, MySQL, PHP หรือ Docker ได้อย่างมั่นใจบน VPS ที่ปลอดภัยแล้ว
