พื้นฐาน Server Hardening สำหรับ Ubuntu Server

พื้นฐาน Server Hardening สำหรับ Ubuntu Server

Server Hardening คือกระบวนการลดความเสี่ยงด้านความมั่นคงปลอดภัยของระบบ โดยการปิดช่องโหว่ที่ไม่จำเป็น ปรับแต่งค่าพื้นฐานให้ปลอดภัย และควบคุมการเข้าถึงอย่างเหมาะสม สำหรับ Ubuntu Server ซึ่งเป็นระบบปฏิบัติการยอดนิยมในงาน Internet Server, Cloud และ Data Center การทำ Hardening ตั้งแต่วันแรกที่ติดตั้งระบบ จะช่วยลดโอกาสถูกโจมตีและเพิ่มความมั่นใจในการให้บริการระยะยาว

บทความนี้เปนการแนะนำ “พื้นฐานที่ควรทำทันที” ในมุมของผู้ดูแลระบบ เพื่อให้สามารถนำไปปฏิบัติได้จริง ไม่ซับซ้อน แต่ได้ผลชัดเจน


1. อัปเดตระบบให้ทันสมัยอยู่เสมอ

สิ่งแรกที่ต้องทำหลังติดตั้ง Ubuntu Server คือการอัปเดตแพตช์ความปลอดภัย

sudo apt update && sudo apt upgrade -y
sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

แนวคิดสำคัญ

  • ช่องโหว่จำนวนมากถูกแก้ด้วย Security Patch

  • ระบบที่ไม่อัปเดต = เป้าหมายอันดับต้น ๆ ของผู้โจมตี


2. จัดการผู้ใช้และสิทธิ์ (User & Privilege Management)

หลีกเลี่ยงการใช้ root โดยตรง

adduser admin
usermod -aG sudo admin

แนวปฏิบัติ

  • ใช้ sudo แทน root

  • กำหนดผู้ใช้ตามหน้าที่ (Principle of Least Privilege)

  • ปิดการ login ของ root ทาง SSH


3. Harden SSH ให้ปลอดภัย

SSH คือประตูหลักของ Server

ไฟล์: /etc/ssh/sshd_config

PermitRootLogin no
PasswordAuthentication no
Port 2222

จากนั้น restart

sudo systemctl restart ssh

ข้อแนะนำ

  • ใช้ SSH Key แทนรหัสผ่าน

  • เปลี่ยน port (ไม่ใช่การป้องกัน 100% แต่ลด bot attack ได้ดี)

 

https://www.manageengine.com/key-manager/images/ssh-key-based-authentication.png
Source: https://www.manageengine.com/key-manager/information-center/what-is-ssh-key-management.html
 

4. ใช้ Firewall (UFW) อย่างจริงจัง

Ubuntu มี UFW ที่ใช้งานง่ายและมีประสิทธิภาพ

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable

ตรวจสอบสถานะ

sudo ufw status verbose

หลักคิด

  • เปิดเฉพาะ Port ที่จำเป็น

  • “Deny by Default” คือหัวใจของ Hardening


5. ป้องกัน Brute Force ด้วย Fail2ban

Fail2ban จะช่วยแบน IP ที่พยายามเดารหัสผ่านซ้ำ ๆ

sudo apt install fail2ban

ตัวอย่าง Jail สำหรับ SSH

[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 1h

ผลลัพธ์

  • ลดการโจมตีแบบอัตโนมัติ

  • ช่วยลด Load และ Log Noise


6. ปิด Service ที่ไม่จำเป็น

ตรวจสอบบริการทั้งหมด

systemctl list-unit-files --type=service
systemctl list-units –type=service –state=running
netstat -tulpn
 

ปิด service ที่ไม่ใช้

sudo systemctl disable bluetooth
sudo systemctl stop bluetooth

**Service ที่ไม่ใช้ = ความเสี่ยงที่ไม่จำเป็น


7. ตรวจสอบ Log และ Monitoring

Log คือ “กล้องวงจรปิด” ของ Server

  • /var/log/auth.log

  • /var/log/syslog

Note.

  • logrotate

  • monitoring เช่น Netdata / Prometheus (ในระดับ Production)

 

8. Backup และ Recovery Plan

Hardening ไม่สมบูรณ์ ถ้าไม่มี Backup

  • Backup config (/etc)

  • Backup database

  • ทดสอบ restore จริง (สำคัญมาก)


สรุป

Server Hardening สำหรับ Ubuntu Server ไม่ใช่เรื่องไกลตัว และไม่จำเป็นต้องซับซ้อน หากเริ่มจากพื้นฐานที่ถูกต้อง ได้แก่

  • อัปเดตระบบสม่ำเสมอ

  • ควบคุมสิทธิ์ผู้ใช้

  • Harden SSH

  • ใช้ Firewall และ Fail2ban

  • ปิดบริการที่ไม่จำเป็น

  • มี Log และ Backup ที่เชื่อถือได้

การลงมือทำทีละขั้น แม้เป็นเรื่องเล็ก ๆ แต่สะสมเป็น “เกราะป้องกัน” ที่แข็งแรงให้กับระบบในระยะยาว

ท่านกำลังวางรากฐานที่ถูกต้องสำหรับการเป็น System Administrator มืออาชีพ 



เขียนและรวบรวมโดย
ฝ่ายวิชาการ SYSADMIN KNOWLEDGE
Technology Lecturer, KMITL
10 January 2025