ความปลอดภัยของ Linux Server เป็นสิ่งที่ SysAdmin ต้องให้ความสำคัญเป็นอันดับแรก เพราะเซิร์ฟเวอร์ที่เชื่อมต่ออินเทอร์เน็ตถูกโจมตีตลอดเวลา ตั้งแต่ Brute Force SSH ไปจนถึง Zero-day Exploit ในคู่มือนี้เราจะครอบคลุมทุกแง่มุมของการรักษาความปลอดภัย Linux Server ตั้งแต่พื้นฐานไปจนถึงขั้นสูง
SSH เป็นช่องทางหลักที่ SysAdmin ใช้จัดการเซิร์ฟเวอร์ และเป็นเป้าหมายอันดับหนึ่งของผู้โจมตี การ Harden SSH ให้แข็งแรงเป็นสิ่งแรกที่ต้องทำ:
# แก้ไข /etc/ssh/sshd_config Port 2222
การเปลี่ยนจากพอร์ต 22 ไม่ได้เพิ่มความปลอดภัยจริง แต่ช่วยลด Automated Bot Attack ได้มาก Log ของ SSH จะสะอาดขึ้นอย่างเห็นได้ชัด
PermitRootLogin no
ห้าม Login ด้วย Root โดยตรง ให้ Login ด้วย User ปกติแล้วใช้ sudo แทน
# สร้าง Key บนเครื่อง Client ssh-keygen -t ed25519 -C "admin@company" # Copy Key ไปยัง Server ssh-copy-id -p 2222 user@server # ปิด Password Authentication PasswordAuthentication no
SSH Key ที่แนะนำคือ Ed25519 เพราะสั้นแต่แข็งแรงกว่า RSA หลังจาก Copy Key แล้วให้ปิด Password Authentication ทันที
AllowUsers admin deploy AllowGroups sshusers
ClientAliveInterval 300 ClientAliveCountMax 2 LoginGraceTime 30 MaxAuthTries 3
UFW (Uncomplicated Firewall) เป็น Frontend ของ iptables ที่ใช้งานง่าย:
# เปิด UFW sudo ufw enable # อนุญาตเฉพาะพอร์ตที่จำเป็น sudo ufw allow 2222/tcp # SSH sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS # ปิดทุกอย่างที่เหลือ (Default) sudo ufw default deny incoming sudo ufw default allow outgoing # ดูกฎทั้งหมด sudo ufw status verbose
หลักการคือ Deny All แล้วอนุญาตเฉพาะที่จำเป็น ทุกพอร์ตที่เปิดคือช่องทางโจมตีที่เป็นไปได้ เปิดให้น้อยที่สุด
Fail2ban ตรวจจับการพยายาม Login ที่ล้มเหลวแล้วบล็อก IP อัตโนมัติ:
# ติดตั้ง sudo apt install fail2ban # สร้าง Config sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
ตั้งค่าใน /etc/fail2ban/jail.local:
[sshd] enabled = true port = 2222 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 findtime = 600
Config นี้จะบล็อก IP ที่ Login ผิด 3 ครั้งใน 10 นาที เป็นเวลา 1 ชั่วโมง สำหรับผู้โจมตีที่ดื้อดึงสามารถเพิ่ม bantime เป็น 86400 (24 ชั่วโมง) หรือใช้ bantime.increment เพื่อเพิ่มเวลาบล็อกทวีคูณ
ช่องโหว่ใหม่ถูกค้นพบทุกวัน การอัพเดตระบบเป็นการป้องกันที่สำคัญที่สุด:
# อัพเดตทุกวัน (Ubuntu/Debian) sudo apt update && sudo apt upgrade -y # เปิด Automatic Security Updates sudo apt install unattended-upgrades sudo dpkg-reconfigure unattended-upgrades
สำหรับ Production Server แนะนำให้เปิด Automatic Security Updates เฉพาะ Patch ด้านความปลอดภัย ส่วน Major Update ทดสอบใน Staging ก่อน
หลักการ Least Privilege คือให้สิทธิ์เท่าที่จำเป็นเท่านั้น:
# ตรวจสอบ User ที่มี UID 0
awk -F: '($3 == "0") {print}' /etc/passwd
# ตรวจสอบ User ที่มี sudo
getent group sudo
# Lock User ที่ไม่ใช้
sudo usermod -L username
Log เป็นหลักฐานสำคัญเมื่อเกิดเหตุการณ์ด้านความปลอดภัย:
sudo apt install auditd# ติดตั้ง auditd sudo apt install auditd audispd-plugins # Monitor การเปลี่ยนแปลง /etc/passwd sudo auditctl -w /etc/passwd -p wa -k passwd_changes # ดู Audit Log sudo ausearch -k passwd_changes
การตั้งค่า Network ที่ปลอดภัยบน Linux Server:
# ปิด IP Forwarding (ถ้าไม่ใช่ Router) echo "net.ipv4.ip_forward = 0" >> /etc/sysctl.conf # ป้องกัน SYN Flood echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf # ปิด ICMP Redirect echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf # ปิด Source Routing echo "net.ipv4.conf.all.accept_source_route = 0" >> /etc/sysctl.conf # Apply sudo sysctl -p
สำหรับเครือข่ายที่ต้องการความปลอดภัยสูง ควรวาง Server ไว้หลัง Firewall Hardware ศึกษาเพิ่มเติมเกี่ยวกับ Firewall Hardware สำหรับ SME สำหรับผู้ที่ใช้ Server เทรด Forex สามารถศึกษาเรื่อง VPS และ EA ได้ที่ iCafeForex
การตรวจจับการบุกรุก:
# สแกน Rootkit sudo apt install rkhunter sudo rkhunter --check # Security Audit ด้วย Lynis sudo apt install lynis sudo lynis audit system
Linux มีสถาปัตยกรรมที่ปลอดภัยกว่า Windows ในหลายด้าน แต่ไม่ได้หมายความว่าปลอดภัย 100% Linux Server ที่ไม่ได้ Harden อาจถูกแฮกได้ง่ายกว่า Windows ที่ตั้งค่าดี ความปลอดภัยขึ้นอยู่กับการตั้งค่ามากกว่าระบบปฏิบัติการ
ขึ้นอยู่กับระดับความเสี่ยง Server ที่เปิดให้เข้าถึงจากอินเทอร์เน็ตต้อง Harden ทุกข้อ Server ภายในเครือข่ายอาจผ่อนปรนบางข้อได้ แต่อย่างน้อยต้องทำ SSH Hardening, Firewall, Fail2ban และ Auto-update
การรักษาความปลอดภัย Linux Server เป็นกระบวนการต่อเนื่อง ไม่ใช่ทำครั้งเดียวแล้วจบ ต้องอัพเดตระบบสม่ำเสมอ ตรวจสอบ Log ทุกวัน และทำ Security Audit อย่างน้อยเดือนละครั้ง ด้วยขั้นตอนที่แนะนำในบทความนี้ Server ของคุณจะมีความปลอดภัยที่แข็งแกร่งพอสำหรับ Production ในปี 2026