รับเครดิต $200

วิธีรักษาความปลอดภัย Droplet DigitalOcean: Cloud Firewall, 2FA, Backup, Snapshot และ Monitoring

อัปเดตล่าสุด 3 พฤศจิกายน 2569 · อ่านประมาณ 8 นาที · โดย DigitalOcean Review ไทย

เช็กลิสต์ความปลอดภัยสำหรับ Droplet และบัญชี DigitalOcean ครอบคลุม 2FA, Cloud Firewall, VPC, SSH key, Backup กับ Snapshot ต่างกันอย่างไร, การอัปเดต, Monitoring, และแผนกู้ระบบเมื่อเกิดเหตุ

เปิดเผยข้อมูล: บทความนี้มีลิงก์แนะนำ (referral) ของ DigitalOcean หากคุณสมัครผ่านลิงก์ เจ้าของเว็บอาจได้รับเครดิต โดยคุณไม่เสียค่าใช้จ่ายเพิ่ม · อ่านนโยบายการรีวิว

ทำไมความปลอดภัยต้องมาก่อน

เซิร์ฟเวอร์ที่เปิดอินเทอร์เน็ตจะถูกสแกนจากบอตภายในไม่กี่นาทีหลังสร้าง พฤติกรรมที่พบบ่อยคือการเดารหัสผ่าน SSH, การหาช่องโหว่ใน WordPress ปลั๊กอิน, และการหาฐานข้อมูลที่เปิดพอร์ตสู่สาธารณะโดยไม่มีรหัสผ่าน ข่าวดีคือมาตรการพื้นฐานไม่กี่ข้อป้องกันการโจมตีส่วนใหญ่ได้

ภายใต้โมเดล Shared Responsibility DigitalOcean ดูแลโครงสร้างพื้นฐานจริง (ฮาร์ดแวร์ เครือข่ายส่วนกลาง hypervisor) แต่ระบบปฏิบัติการ แอป และการตั้งค่าบนเครื่อง Droplet เป็นความรับผิดชอบของคุณ

ระดับที่ 1: ปกป้องบัญชี DigitalOcean

บัญชีคือกุญแจของทุกอย่าง ถ้าบัญชีถูกแฮก ผู้โจมตีลบหรือสร้างทรัพยากร และสร้างค่าใช้จ่ายได้

  1. เปิด 2FA (Two-Factor Authentication) ที่เมนู Settings → Security ใช้แอป Authenticator แทน SMS ถ้าเป็นไปได้
  2. ใช้รหัสผ่านที่ไม่ซ้ำกับที่อื่น และจัดเก็บใน password manager
  3. เก็บ recovery code ไว้ในที่ปลอดภัยนอกคอมพิวเตอร์เครื่องเดียว
  4. ใช้ Team และบทบาท ถ้าทำงานร่วมกันหลายคน อย่าแชร์บัญชีเดียว
  5. ตั้ง Billing Alert ให้เตือนเมื่อค่าใช้จ่ายผิดปกติ
  6. สร้าง API token แบบสิทธิ์น้อยที่สุด (read-only ถ้าไม่จำเป็นต้องเขียน) และหมุนเวียนเป็นระยะ อย่าฝัง token ใน repository สาธารณะ

ระดับที่ 2: ปกป้องการเข้าถึงเซิร์ฟเวอร์

ทำตามขั้นตอนในบทความ สอนสร้าง Droplet แรก โดยสรุป

  • ใช้ SSH key ปิดล็อกอินด้วยรหัสผ่าน และปิด root login
  • สร้างผู้ใช้ปกติสำหรับ sudo
  • จำกัดผู้ที่เข้าถึง SSH ได้ด้วย Firewall (ดูด้านล่าง)
  • ถ้าจำเป็น เปลี่ยนพอร์ต SSH ได้ แต่นั่นไม่ใช่มาตรการความปลอดภัยจริง เป็นแค่ลดสแปมใน log ไม่ควรพึ่งพาแทน key

ระดับที่ 3: ไฟร์วอลล์สองชั้น

UFW บนเครื่อง

ตั้ง default deny incoming แล้วเปิดเฉพาะที่จำเป็น

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Cloud Firewall ของ DigitalOcean

Cloud Firewall ทำงานที่ระดับเครือข่ายก่อนแพ็กเก็ตถึงเครื่อง ตั้งค่าที่ Networking → Firewalls ข้อดีคือใช้กับหลาย Droplet พร้อมกัน (ใช้ tag หรือเลือกเครื่อง) และตั้งกฎครั้งเดียวใช้ทั้งกลุ่ม ตามเอกสารทางการ Cloud Firewall ไม่คิดค่าบริการเพิ่ม (ตรวจสอบเงื่อนไขปัจจุบันบนหน้าราคา)

กฎที่แนะนำสำหรับเว็บเซิร์ฟเวอร์ทั่วไป

ประเภทโปรโตคอล/พอร์ตแหล่งที่มา
InboundTCP 22 (SSH)IP ของคุณเท่านั้น (ถ้า IP คงที่)
InboundTCP 80ทั้งหมด
InboundTCP 443ทั้งหมด
InboundICMPทั้งหมด (เพื่อ ping/diagnose)
Outboundทุกอย่างทั้งหมด

เคล็ดลับ: ถ้า IP ที่บ้านเปลี่ยนบ่อย อย่าจำกัด SSH ด้วย IP เดียวจนเข้าไม่ได้ ใช้ VPN ที่มี IP คงที่ หรือยอมเปิด SSH กับทุก IP แต่ใช้ key + fail2ban

ระดับที่ 4: ปิดฐานข้อมูลจากอินเทอร์เน็ต

ความผิดพลาดที่ร้ายแรงที่สุดคือเปิด MySQL (3306), PostgreSQL (5432), Redis (6379) หรือ MongoDB (27017) ให้ทุกคนเข้าถึง

  • ให้ฐานข้อมูล listen เฉพาะ 127.0.0.1 ถ้าอยู่เครื่องเดียวกับแอป
  • ถ้าแยกเครื่อง ใช้ VPC (Virtual Private Cloud) เชื่อมกันผ่าน private IP และเปิดพอร์ตเฉพาะ IP ภายใน
  • ถ้าใช้ Managed Database ให้ใช้ Trusted Sources จำกัดว่า Droplet ไหนเชื่อมต่อได้ ดู คู่มือ Managed Databases

ระดับที่ 5: อัปเดตและลดพื้นผิวการโจมตี

  • เปิด unattended-upgrades เพื่อแพตช์ความปลอดภัยอัตโนมัติ
  • อัปเดตแอปและปลั๊กอิน (โดยเฉพาะ WordPress) สม่ำเสมอ
  • ลบซอฟต์แวร์ที่ไม่ใช้ ปิดบริการที่ไม่จำเป็น (sudo ss -tulpn ดูว่ามีอะไรเปิดพอร์ตอยู่)
  • ใช้ HTTPS ทุกหน้า ด้วย Let's Encrypt (certbot)
  • แยกสิทธิ์ผู้ใช้ที่รันแอปออกจากผู้ใช้ผู้ดูแลระบบ

ระดับที่ 6: Backup และ Snapshot ต่างกันอย่างไร

หลายคนสับสนสองอย่างนี้ ซึ่งสำคัญมากเพราะมีผลต่อแผนกู้ระบบ

หัวข้อBackups อัตโนมัติSnapshots
วิธีทำงานระบบถ่ายภาพ Droplet ตามตารางที่กำหนดคุณสั่งถ่ายภาพเมื่อต้องการ
ราคา20% (รายสัปดาห์) หรือ 30% (รายวัน) ของราคา Dropletคิดตามขนาดข้อมูลที่เก็บ
เหมาะกับการกู้คืนเมื่อเกิดปัญหาก่อนอัปเกรดหรือเปลี่ยนแปลงใหญ่
จัดการอัตโนมัติด้วยมือ (หรือสคริปต์/API)

ข้อสำคัญ

  • Backup และ Snapshot ระดับ Droplet เป็นภาพทั้งดิสก์ ไม่ใช่สำเนาระดับไฟล์ที่เลือกกู้ทีละไฟล์ได้สะดวก และข้อมูลฐานข้อมูลที่กำลังเขียนอาจไม่สอดคล้องกัน
  • เพราะฉะนั้นควรทำ dump ฐานข้อมูล (เช่น mysqldump, pg_dump) และส่งไปเก็บภายนอก เช่น Spaces หรือที่อื่น
  • ทำตามกฎ 3-2-1: ข้อมูล 3 ชุด, 2 สื่อ/ที่เก็บต่างกัน, 1 ชุดอยู่นอกผู้ให้บริการหลัก
  • ทดสอบกู้คืนจริง อย่างน้อยไตรมาสละครั้ง backup ที่ไม่เคยลองกู้ ยังไม่ใช่ backup

ตัวอย่างสคริปต์ dump MySQL แล้วบีบอัด

mysqldump --single-transaction -u backup -p'รหัสผ่าน' wordpress | gzip > /var/backups/wp-$(date +%F).sql.gz

(ควรเก็บรหัสผ่านใน ~/.my.cnf สิทธิ์ 600 แทนการใส่ในคำสั่ง เพื่อไม่ให้ปรากฏใน history)

ระดับที่ 7: Monitoring และการแจ้งเตือน

  • เปิด Monitoring agent ตอนสร้าง Droplet หรือติดตั้งภายหลัง
  • ตั้ง Alert Policy แจ้งเตือนผ่านอีเมล/Slack เมื่อ CPU > 80% ต่อเนื่อง, RAM เกินเกณฑ์, ดิสก์เต็มเกิน 85%, และ bandwidth ผิดปกติ
  • ใช้เครื่องมือภายนอกตรวจ uptime เช่น UptimeRobot หรือ Uptime Kuma เพื่อดูมุมมองจากภายนอก
  • เก็บ log ในที่ที่ตรวจย้อนหลังได้ และดู /var/log/auth.log เป็นระยะว่ามีการล็อกอินแปลก ๆ หรือไม่

ระดับที่ 8: แผนรับมือเมื่อเกิดเหตุ

  1. สงสัยว่าถูกแฮก: ตัดการเข้าถึงด้วยการใช้ Cloud Firewall ปิดขาเข้าชั่วคราว อย่าเพิ่งลบเครื่อง เก็บ snapshot ไว้ตรวจสอบ
  2. หมุนเวียนความลับทั้งหมด: รหัสผ่านฐานข้อมูล API key SSH key
  3. กู้จาก backup ที่สะอาด ที่ทำก่อนเกิดเหตุ ไม่ใช่แค่ "ลบมัลแวร์"
  4. หาสาเหตุ (ปลั๊กอินที่มีช่องโหว่ รหัสผ่านอ่อน พอร์ตที่เปิด) แล้วปิดช่องก่อนกลับมาออนไลน์
  5. แจ้งผู้ที่ได้รับผลกระทบ หากมีข้อมูลผู้ใช้รั่ว ให้เป็นไปตามกฎหมายคุ้มครองข้อมูลส่วนบุคคล (PDPA)
รับเครดิตฟรี $200 (ใช้ได้ 60 วัน)สมัคร DigitalOcean ผ่านลิงก์แนะนำของเรา แล้วเพิ่มวิธีชำระเงินที่ใช้งานได้ ระบบจะให้เครดิตทดลองใช้งาน ตามเงื่อนไขของ DigitalOcean ณ วันที่สมัคร
สมัครรับเครดิต $200 →

สรุป: เช็กลิสต์ความปลอดภัย 15 ข้อ

  1. เปิด 2FA ในบัญชี DigitalOcean
  2. ใช้ SSH key และปิด password login
  3. ปิด root login
  4. เปิด UFW และ Cloud Firewall
  5. ปิดพอร์ตฐานข้อมูลจากอินเทอร์เน็ต
  6. ใช้ VPC สำหรับการสื่อสารภายใน
  7. เปิด unattended-upgrades
  8. อัปเดตแอปและปลั๊กอินสม่ำเสมอ
  9. ใช้ HTTPS ทุกหน้า
  10. เปิด Backup อัตโนมัติสำหรับเครื่องสำคัญ
  11. ทำ dump ฐานข้อมูลส่งไปเก็บภายนอก
  12. ทดสอบกู้คืนเป็นระยะ
  13. ตั้ง Monitoring และ Alert
  14. ตั้ง Billing Alert
  15. ทบทวน API token และสมาชิกทีมเป็นระยะ

เมื่อพร้อมแล้วไปต่อกับ ติดตั้ง WordPress บน DigitalOcean หรือดูวิธีจัดงบที่ 15 วิธีลดค่าใช้จ่าย DigitalOcean

คำถามที่พบบ่อยเรื่องความปลอดภัย

ต้องใช้ทั้ง UFW และ Cloud Firewall ไหม

ไม่จำเป็นต้องใช้ทั้งคู่ แต่การมีสองชั้นเป็นแนวปฏิบัติที่ดี Cloud Firewall ป้องกันก่อนแพ็กเกตถึงเครื่อง ส่วน UFW เป็นชั้นสำรองถ้าตั้ง Cloud Firewall ผิดพลาด

DigitalOcean แบ็กอัพให้ฟรีไหม

ไม่ฟรี Backup อัตโนมัติคิด 20% หรือ 30% ของราคา Droplet ตามความถี่ แต่ Managed Database มี backup รายวันรวมอยู่ในราคา ตามหน้าราคา

ติดตั้งแอนตี้ไวรัสบน Linux ต้องไหม

ไม่จำเป็นสำหรับเว็บเซิร์ฟเวอร์ส่วนใหญ่ สิ่งที่ช่วยได้มากกว่าคือการอัปเดต การจำกัดสิทธิ์ และการเฝ้าสังเกต ถ้าให้ผู้ใช้อัปโหลดไฟล์ อาจเสริมด้วย ClamAV สำหรับสแกนไฟล์

ควรเปลี่ยน SSH port ไหม

ไม่จำเป็นและไม่ได้ช่วยความปลอดภัยจริง แต่ลดสแปมใน log ได้บ้าง สิ่งที่สำคัญกว่าคือ key-only login

รับเครดิตฟรี $200 (ใช้ได้ 60 วัน)สมัคร DigitalOcean ผ่านลิงก์แนะนำของเรา แล้วเพิ่มวิธีชำระเงินที่ใช้งานได้ ระบบจะให้เครดิตทดลองใช้งาน ตามเงื่อนไขของ DigitalOcean ณ วันที่สมัคร
สมัครรับเครดิต $200 →