🛡️
VPS

เซิร์ฟเวอร์ Minecraft เป็นเป้าหมายยอดนิยมของการโจมตี DDoS เพราะ IP ของเซิร์ฟเวอร์มักถูกเปิดเผยต่อผู้เล่นทุกคน และมีเครื่องมือโจมตีสำเร็จรูปวางขายทั่วไป บทความนี้อธิบายภาพรวมของภัยคุกคามอย่างตรงไปตรงมา และวางแผนป้องกันเป็นชั้น ๆ ตั้งแต่ระดับเครือข่าย (network layer) ที่ต้องพึ่งผู้ให้บริการ ไปจนถึงการเสริมความแข็งแกร่ง (hardening) ทั้งฝั่งระบบปฏิบัติการและฝั่งตัวเกมเอง เป้าหมายคือให้คุณเข้าใจว่าอะไรทำได้จริงบน VPS เครื่องเดียว และอะไรที่ต้องอาศัยโครงสร้างภายนอก

ภัยคุกคามที่เซิร์ฟเวอร์ Minecraft ต้องเจอ

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

ความจริงที่ต้องยอมรับ: VPS เครื่องเดียวรับ DDoS ใหญ่ไม่ไหว

อย่าหลงเชื่อคำโฆษณาที่บอกว่า "ตั้งค่าไม่กี่บรรทัดก็กัน DDoS ได้ 100%" ไม่มีการตั้งค่า iptables, ufw หรือปลั๊กอินใด ๆ ที่ทำให้ VPS เครื่องเดียวรอดจากการโจมตี volumetric ขนาดใหญ่ได้ เพราะเมื่อทราฟฟิกท่วมท้นจนเต็มแบนด์วิดท์ของสายที่เข้าเครื่อง แพ็กเก็ตก็ถูกทิ้งตั้งแต่ต้นทางก่อนถึงไฟร์วอลล์ของคุณเสียอีก การกรองที่ตัวเครื่องช่วยได้เฉพาะการโจมตีขนาดเล็กเท่านั้น

การป้องกัน DDoS ระดับเครือข่ายที่แท้จริงต้องเกิดขึ้นที่ ต้นน้ำ (upstream) คือที่ edge ของผู้ให้บริการหรือศูนย์ scrubbing ที่มีแบนด์วิดท์มหาศาลคอยดูดซับและกรองทราฟฟิกร้ายก่อนถึงเครื่องคุณ นี่คือเหตุผลที่ต้องพึ่งโครงสร้างพื้นฐานของผู้ให้บริการ ไม่ใช่การตั้งค่าเพียงลำพัง

ซ่อน IP ต้นทางด้วย TCP Reverse Proxy (ทางเลือกเสริม)

กลยุทธ์ที่นิยมสำหรับ Minecraft คือการวาง reverse proxy / anti-DDoS layer ไว้ด้านหน้า เพื่อซ่อน IP จริงของเซิร์ฟเวอร์ ผู้เล่นเชื่อมต่อผ่านโดเมนที่ชี้ไปยัง proxy ทำให้ผู้โจมตีเห็นเฉพาะ IP ของ proxy ไม่ใช่เครื่องคุณ เมื่อถูกยิงก็จะโดนที่ชั้น proxy ที่มีระบบ scrubbing รองรับ

ทั้งสองเป็นบริการ ภายนอกของบุคคลที่สาม และเป็นทางเลือกเสริม ไม่ใช่ข้อบังคับ หากเซิร์ฟเวอร์คุณเป็นชุมชนเล็ก ๆ ในกลุ่มเพื่อน การซ่อน IP ด้วย whitelist และ hardening พื้นฐานอาจเพียงพอแล้ว

เสริมความปลอดภัยระดับระบบปฏิบัติการ

ชั้นนี้คือสิ่งที่คุณควบคุมได้เต็มที่บน VPS ทำให้เครื่องแข็งแรงและลดพื้นที่ให้โจมตี

รันเซิร์ฟเวอร์ด้วยผู้ใช้ที่ไม่ใช่ root

อย่ารันโปรเซส Minecraft ด้วยสิทธิ์ root เด็ดขาด สร้างผู้ใช้เฉพาะเช่น mcserver เพื่อจำกัดความเสียหายหากถูกเจาะผ่านช่องโหว่ของปลั๊กอิน

เปิดเฉพาะพอร์ตที่จำเป็นด้วย UFW

# ตั้งค่าพื้นฐานปฏิเสธขาเข้าทั้งหมด แล้วเปิดเฉพาะที่ต้องใช้
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH (พิจารณาเปลี่ยนพอร์ตหรือจำกัด IP)
sudo ufw allow 22/tcp

# พอร์ต Minecraft Java Edition
sudo ufw allow 25565/tcp

sudo ufw enable
sudo ufw status verbose

ป้องกัน SSH ด้วย fail2ban และปิดรหัสผ่าน

ติดตั้ง fail2ban เพื่อแบน IP ที่พยายามล็อกอิน SSH ผิดซ้ำ ๆ และเปลี่ยนไปใช้การยืนยันตัวตนด้วยกุญแจ (key auth) แล้วปิดการล็อกอินด้วยรหัสผ่านใน /etc/ssh/sshd_config โดยตั้ง PasswordAuthentication no และ PermitRootLogin no

อัปเดตอยู่เสมอ

อัปเดตระบบปฏิบัติการ, Java runtime, ตัวเซิร์ฟเวอร์ (Paper/Spigot/Vanilla) และปลั๊กอินทุกตัวสม่ำเสมอ ช่องโหว่อย่าง Log4Shell ในอดีตแสดงให้เห็นว่าการรันซอฟต์แวร์เก่าคือความเสี่ยงร้ายแรง

จำกัดอัตราการเชื่อมต่อด้วย iptables (ช่วยได้เฉพาะการโจมตีเล็ก)

เราสามารถใช้ iptables จำกัดจำนวนการเชื่อมต่อใหม่ต่อ IP บนพอร์ต 25565 เพื่อชะลอ SYN flood และ bot join flood ขนาดเล็กได้

# จำกัดการเชื่อมต่อใหม่: สูงสุด 3 ครั้งใน 60 วินาทีต่อ IP บนพอร์ต 25565
sudo iptables -A INPUT -p tcp --dport 25565 --syn -m connlimit \
  --connlimit-above 10 --connlimit-mask 32 -j DROP

sudo iptables -A INPUT -p tcp --dport 25565 --syn -m recent --name mc --set
sudo iptables -A INPUT -p tcp --dport 25565 --syn -m recent --name mc \
  --update --seconds 60 --hitcount 4 -j DROP

# ป้องกัน SYN flood พื้นฐาน
sudo sysctl -w net.ipv4.tcp_syncookies=1

กฎเหล่านี้มีประโยชน์กับการโจมตีปริมาณน้อยและ bot ที่ยิงจาก IP เดิมซ้ำ ๆ แต่ ไม่ได้ช่วยกับการโจมตี volumetric ขนาดใหญ่ ที่มาจาก IP กระจายตัวหลายหมื่นแหล่ง ให้มองว่าเป็นการ "ชะลอ" ไม่ใช่การ "ป้องกันเบ็ดเสร็จ"

เสริมความปลอดภัยฝั่งตัวเกม (Minecraft)

การตั้งค่าในไฟล์ server.properties และปลั๊กอินช่วยกันการโจมตีระดับแอปพลิเคชันได้มาก

ตารางสรุป: ประเภทการโจมตีและวิธีรับมือ

ประเภทการโจมตีชั้นวิธีรับมือหลัก
Volumetric / Amplification (UDP flood)L3/4Scrubbing ระดับ upstream ของผู้ให้บริการ / reverse proxy (TCPShield, Cloudflare Spectrum)
TCP SYN Flood บน 25565L4iptables connlimit + tcp_syncookies (เล็ก), scrubbing (ใหญ่)
Bot join floodL7online-mode=true, whitelist, ปลั๊กอิน anti-bot, rate-limit
IP grabbing / โจมตีเจาะจงผู้เล่นสังคม/เครือข่ายให้ความรู้ผู้เล่น, ซ่อน IP ต้นทางด้วย proxy, ไม่คลิกลิงก์แปลก
เจาะผ่านช่องโหว่ปลั๊กอินระบบอัปเดตสม่ำเสมอ, รัน non-root, จำกัดสิทธิ์

สำรองข้อมูลและเฝ้าระวัง (Monitoring)

ไม่มีระบบใดกันได้ 100% การเตรียมพร้อมกู้คืนจึงสำคัญพอ ๆ กับการป้องกัน

  1. ตั้งการสำรองข้อมูลโลกและไฟล์ตั้งค่าเป็นประจำ เก็บสำเนาไว้นอกเครื่อง
  2. เฝ้าดูการใช้แบนด์วิดท์, CPU, RAM และจำนวนการเชื่อมต่อ เพื่อรู้ตัวเร็วเมื่อถูกโจมตี
  3. ตรวจ log ของเซิร์ฟเวอร์และ SSH สม่ำเสมอเพื่อหาความผิดปกติ เช่น การ join ถี่ผิดปกติจาก IP เดียว

บทบาทของผู้ให้บริการโฮสติ้ง

เนื่องจากการกรอง DDoS ขนาดใหญ่ต้องเกิดที่ต้นน้ำ การเลือกผู้ให้บริการที่มีโครงสร้างเครือข่ายดีจึงสำคัญ VPS Linux ของ AsiaGB เริ่มต้นที่ 500 บาท/เดือน ใช้สตอเรจแบบ SSD และการันตี uptime ที่ 99% พร้อมแผงจัดการ DirectAdmin สำหรับตั้งค่าเซิร์ฟเวอร์ คุณสามารถติดตั้ง Java, Paper และตั้งค่า UFW/iptables ตามคู่มือนี้ได้เต็มที่บน VPS หากคาดว่าจะโดนโจมตีใหญ่เป็นประจำ ควรพิจารณาวาง reverse proxy anti-DDoS อย่าง TCPShield ไว้ด้านหน้าเพิ่มเติม

คำถามที่พบบ่อย (FAQ)

ตั้งค่า UFW หรือ iptables อย่างเดียวกัน DDoS ได้ไหม?

ได้เฉพาะการโจมตีขนาดเล็กเท่านั้น การโจมตี volumetric ขนาดใหญ่จะทำให้แบนด์วิดท์เต็มก่อนถึงไฟร์วอลล์ของคุณ ดังนั้นต้องอาศัยการ scrubbing ระดับ upstream หรือ reverse proxy ที่ซ่อน IP ต้นทางร่วมด้วย

TCPShield กับ Cloudflare Spectrum จำเป็นต้องใช้ไหม?

ไม่จำเป็นสำหรับทุกเซิร์ฟเวอร์ ทั้งสองเป็นบริการภายนอกของบุคคลที่สามที่เป็นทางเลือกเสริม เหมาะกับเซิร์ฟเวอร์สาธารณะที่เสี่ยงโดนยิงบ่อย ส่วนเซิร์ฟเวอร์ส่วนตัวเล็ก ๆ การใช้ whitelist และ hardening พื้นฐานมักเพียงพอ

online-mode=true ช่วยเรื่องความปลอดภัยอย่างไร?

บังคับให้ผู้เล่นยืนยันตัวตนกับเซิร์ฟเวอร์ Mojang จึงกันบอทจากไคลเอนต์เถื่อน (cracked) ที่มักถูกใช้ยิง join flood ระดับแอปพลิเคชันได้ดี และควรใช้ร่วมกับ whitelist สำหรับเซิร์ฟเวอร์ส่วนตัว

ควรทำอะไรเมื่อ IP เซิร์ฟเวอร์ถูกเปิดเผยและโดนยิง?

หากใช้ reverse proxy ควรเปลี่ยน IP ต้นทางใหม่แล้วผูกกับ proxy อีกครั้ง ปิดพอร์ตที่ไม่จำเป็น เปิดใช้ rate-limit และแจ้งผู้ให้บริการ พร้อมกู้คืนจากไฟล์สำรองหากบริการเสียหาย

พร้อมเปิดเซิร์ฟเวอร์ Minecraft ของคุณแล้วหรือยัง?

AsiaGB VPS Linux (SSD, DirectAdmin, uptime 99%) เริ่มต้น 500 บาท/เดือน ดาต้าเซ็นเตอร์ไทย/สิงคโปร์ ปิงต่ำ เหมาะกับเซิร์ฟ Minecraft ทุกขนาด

ดูแพ็กเกจ VPS