ลด 50% ทุกแพ็กเกจ เวลาจำกัด เริ่มต้นที่ $2.48/mo
14 นาทีเหลือ
ความปลอดภัยและเครือข่าย

วิธีรักษาความปลอดภัย Linux VPS | 20 วิธีเสริมความปลอดภัยให้เซิร์ฟเวอร์ VPS

เรกซา ไซรัส By เรกซา ไซรัส อ่าน 14 นาที อัปเดตเมื่อ 2 ต.ค. 2025
เซิร์ฟเวอร์ Linux VPS ที่ปลอดภัยพร้อมไอคอนโล่และกราฟ

เซิร์ฟเวอร์ Linux VPS มีความปลอดภัยสูงกว่าระบบ Windows ด้วย Security Model ในตัวของ Linux อย่างไรก็ตาม ไม่มีระบบใดที่ปลอดภัยได้ร้อยเปอร์เซ็นต์ แฮกเกอร์สแกนเซิร์ฟเวอร์หลายล้านเครื่องทุกวัน เพื่อค้นหาช่องโหว่ที่จะใช้ขโมยข้อมูลสำคัญหรือเปิดการโจมตีขนาดใหญ่

การรักษาความปลอดภัยให้เซิร์ฟเวอร์ Linux ต้องอาศัยการตั้งค่าที่รอบคอบ การติดตั้ง VPS ใหม่มักมาพร้อมการตั้งค่าเริ่มต้นที่เน้นความสะดวกในการเข้าถึงมากกว่าความปลอดภัย การทำความเข้าใจวิธีรักษาความปลอดภัยเซิร์ฟเวอร์ Linux ช่วยป้องกันภัยคุกคามที่เปลี่ยนแปลงอยู่เสมอ พร้อมรักษาการทำงานของระบบให้ใช้งานได้ตามปกติ คู่มือนี้รวบรวม 20 ขั้นตอนสำคัญในการรักษาความปลอดภัยโครงสร้างพื้นฐานเซิร์ฟเวอร์ Linux เพื่อเปลี่ยนระบบที่เปราะบางให้กลายเป็นป้อมปราการที่รับมือกับการโจมตีทั่วไปได้อย่างมีประสิทธิภาพ

Linux VPS คืออะไร

อินโฟกราฟิกความปลอดภัย Linux VPS
Linux VPS (Virtual Private Server) ทำงานบนแพลตฟอร์มคลาวด์พร้อมทรัพยากรเฉพาะที่แยกออกจากผู้ใช้รายอื่น ต่างจากโฮสติ้งแบบ Shared ที่บัญชีหนึ่งถูกโจมตีแล้วอาจกระทบบัญชีอื่นได้ การโฮสต์ VPS แบบปลอดภัยจะแยกสภาพแวดล้อมของคุณออกจากกันโดยสมบูรณ์ อย่างไรก็ตาม ผู้โจมตียังคงมุ่งเป้าไปที่เซิร์ฟเวอร์ VPS ที่ไม่ได้รับการป้องกัน เพื่อขโมยข้อมูล ติดตั้งมัลแวร์ หรือใช้เป็นฐานในการโจมตีระบบอื่น

เมื่อคุณสั่งซื้อ ซื้อ Linux VPS โฮสติ้ง ระบบปฏิบัติการจะมาพร้อมการตั้งค่าพื้นฐานที่ติดตั้งไว้ล่วงหน้า การตั้งค่าเริ่มต้นเหล่านี้เน้นความง่ายในการใช้งานมากกว่าความปลอดภัย ทำให้เซิร์ฟเวอร์ของคุณเสี่ยงต่อการโจมตีอัตโนมัติที่สแกนหาช่องโหว่ทั่วไป การรักษาความปลอดภัยข้อมูลบนคลาวด์ด้วยเซิร์ฟเวอร์ VPS ต้องใช้มาตรการเชิงรุกที่มากกว่าการติดตั้งพื้นฐาน

ทำไมคุณควรรักษาความปลอดภัยให้ Linux VPS ของคุณ

อินโฟกราฟิกภัยคุกคามความปลอดภัย VPS 

เซิร์ฟเวอร์ที่ไม่ได้รับการป้องกันจะกลายเป็นเป้าหมายภายในไม่กี่ชั่วโมงหลังเปิดใช้งาน ปัจจุบันองค์กรต่างๆ เผชิญกับ การโจมตีทางไซเบอร์เฉลี่ย 1,876 ครั้งต่อสัปดาห์ซึ่งเพิ่มขึ้น 75% จากปีที่ผ่านมา การทำความเข้าใจวิธีรักษาความปลอดภัยโครงสร้างพื้นฐานเซิร์ฟเวอร์ Linux ช่วยป้องกันภัยคุกคามที่ไม่หยุดหย่อนเหล่านี้ไม่ให้เข้าถึงระบบของคุณ

สิ่งที่อันตรายที่สุดคือการโจมตีที่ซับซ้อนมักไม่ถูกตรวจพบ ผู้โจมตีอาจเข้าถึงข้อมูล ดักฟังการสื่อสาร หรือใช้ทรัพยากรของเซิร์ฟเวอร์โดยไม่มีสัญญาณการบุกรุกที่ชัดเจน การโฮสต์ VPS อย่างปลอดภัยต้องอาศัยมาตรการเชิงรุก เพราะผู้โจมตีไม่ประกาศตัวเอง และเมื่อคุณสังเกตเห็นกิจกรรมผิดปกติ ความเสียหายอาจเกิดขึ้นไปมากแล้ว

Security Model ของ Linux (LSM)

อินโฟกราฟิก Security Model ของ Linux
Linux มีฟีเจอร์ความปลอดภัยในตัวที่บล็อกการเข้าถึงองค์ประกอบสำคัญของระบบโดยไม่ได้รับอนุญาต Diagram ของ Security Model ใน Linux แสดงให้เห็นว่าการควบคุมการเข้าถึงปกป้องไฟล์ กระบวนการ และการโต้ตอบของผู้ใช้ได้อย่างไร ซึ่งสร้างชั้นการป้องกันหลายชั้นที่ทำให้การเจาะระบบยากกว่าระบบปฏิบัติการอื่น

อย่างไรก็ตาม LSM ไม่สามารถป้องกันการโจมตีที่เกิดจากการตั้งค่าที่ผิดพลาด รหัสผ่านที่อ่อนแอ หรือซอฟต์แวร์ที่ล้าสมัย LSM เป็นเพียงรากฐานสำหรับการรักษาความปลอดภัยเซิร์ฟเวอร์ Linux แต่ต้องมีการนำไปใช้อย่างถูกต้องจึงจะมีประสิทธิผลสำหรับ Ubuntu VPS hosting บริการโฮสติ้ง และ Linux distribution อื่นๆ

20 วิธีรักษาความปลอดภัย Linux VPS

20 วิธีรักษาความปลอดภัย Linux VPS
มาตรการความปลอดภัยเหล่านี้เริ่มจากการเปลี่ยนแปลงการตั้งค่าพื้นฐานไปจนถึงระบบการตรวจสอบขั้นสูง การรักษาความปลอดภัยสภาพแวดล้อมเซิร์ฟเวอร์ Linux ให้ได้ผลต้องดำเนินการตามขั้นตอนเหล่านี้อย่างเป็นระบบ เพื่อสร้างเซิร์ฟเวอร์ที่ต้านทานเวกเตอร์การโจมตีทั่วไปได้

แต่ละเทคนิคมุ่งเน้นไปที่ช่องโหว่เฉพาะที่ผู้โจมตีมักใช้ประโยชน์ วิธีการครอบคลุมตั้งแต่การตั้งค่าพื้นฐานที่ทุกเซิร์ฟเวอร์ต้องมี ไปจนถึงระบบการตรวจสอบขั้นสูงสำหรับการตรวจจับภัยคุกคามที่ซับซ้อน มาตรการบางอย่างให้การป้องกันทันที ในขณะที่บางอย่างสร้างความยืดหยุ่นด้านความปลอดภัยในระยะยาว ลำดับการดำเนินการมีความสำคัญ ขั้นตอนการ Hardening พื้นฐานควรทำก่อนติดตั้งเครื่องมือตรวจสอบขั้นสูง ทั้ง 20 กลยุทธ์นี้รวมกันสร้างชั้นการป้องกันที่ซ้อนทับกัน ช่วยลด Attack Surface ของเซิร์ฟเวอร์ได้อย่างมีนัยสำคัญ

1. อัปเดตซอฟต์แวร์ให้เป็นปัจจุบันอยู่เสมอ

ซอฟต์แวร์ที่ล้าสมัยมีช่องโหว่ด้านความปลอดภัยที่เป็นที่รู้จักซึ่งผู้โจมตีใช้ประโยชน์ได้ นักพัฒนาซอฟต์แวร์ออก Patch เพื่อแก้ไขช่องโหว่เหล่านี้อย่างสม่ำเสมอ การอัปเดตจึงเป็นด่านป้องกันแรกสำหรับระบบเซิร์ฟเวอร์ Linux

ตั้งค่าการอัปเดตอัตโนมัติสำหรับ Patch ความปลอดภัยที่สำคัญ:

# Ubuntu/Debian

sudo apt update && sudo apt upgrade -y

# CentOS/RHEL  

sudo yum update -y

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

2. ปิดการเข้าสู่ระบบด้วย Root

เซิร์ฟเวอร์ทุกเครื่องของ Linux มีบัญชีผู้ใช้ "root" ที่มีสิทธิ์เข้าถึงระบบอย่างไม่จำกัด เนื่องจากแฮกเกอร์รู้ดีว่าบัญชีนี้มีอยู่ในทุกเซิร์ฟเวอร์ พวกเขาจึงมักโจมตีด้วย การโจมตีแบบ Brute Force เพื่อเดารหัสผ่านและเข้าควบคุมเซิร์ฟเวอร์ได้อย่างสมบูรณ์

สร้างผู้ใช้งานระดับ Administrator ใหม่ก่อนปิดการใช้งาน root:

# Create new user

sudo adduser adminuser

sudo usermod -aG sudo adminuser

# Disable root login in SSH configuration

sudo nano /etc/ssh/sshd_config

# Change: PermitRootLogin no

sudo systemctl restart sshd

วิธีนี้บังคับให้ผู้โจมตีต้องเดาทั้งชื่อผู้ใช้และรหัสผ่าน ซึ่งเพิ่มความปลอดภัยได้อย่างมาก

3. สร้าง Key Pair สำหรับ SSH

การเข้าสู่ระบบด้วยรหัสผ่าน โดยเฉพาะรหัสผ่านที่ไม่แข็งแรง อาจเป็นช่องโหว่ด้านความปลอดภัย การยืนยันตัวตนด้วย SSH key เป็นทางเลือกที่ปลอดภัยกว่า เพราะใช้คีย์เข้ารหัสแทนรหัสผ่าน ทำให้การยืนยันตัวตนแน่นหนาและยากต่อการถอดรหัสมากขึ้น

มาตรการรักษาความปลอดภัยนี้มีความสำคัญเป็นพิเศษ เนื่องจาก ข้อมูลรับรองตัวตนที่ถูกขโมยเป็นช่องทางเริ่มต้นของการโจมตีใน 24% ของเหตุการณ์ข้อมูลรั่วไหล ตามงานวิจัยด้านความปลอดภัย การโจมตีประเภทนี้ใช้เวลานานกว่าการโจมตีรูปแบบอื่นในการตรวจจับและควบคุม ดังนั้นการป้องกันด้วย SSH keys จึงเป็นสิ่งจำเป็น

สร้างคู่คีย์ SSH สำหรับการยืนยันตัวตนที่ปลอดภัย:

ssh-keygen -t rsa -b 4096

ssh-copy-id username@server-ip

คีย์ SSH สามารถมีความยาวได้ถึง 4096 บิต ซึ่งปลอดภัยกว่ารหัสผ่านที่ซับซ้อนที่สุดอย่างเทียบไม่ได้

4. เปิดใช้งานการยืนยันตัวตนสองชั้น

การยืนยันตัวตนสองขั้นตอนเพิ่มชั้นการตรวจสอบอีกหนึ่งขั้นนอกเหนือจากรหัสผ่าน แม้ผู้โจมตีจะได้รหัสผ่านของคุณไป ก็ยังไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้หากไม่มีปัจจัยยืนยันตัวตนขั้นที่สอง

ติดตั้งและตั้งค่าการยืนยันตัวตนสองขั้นตอน:

sudo apt install libpam-google-authenticator

google-authenticator

กำหนดค่าแอปยืนยันตัวตนบนมือถือของคุณเพื่อสร้างรหัสแบบ time-based สำหรับการเข้าถึงเซิร์ฟเวอร์

5. เปลี่ยนพอร์ต SSH

พอร์ตเริ่มต้น SSH (22) ถูกโจมตีอยู่ตลอดเวลาจากเครื่องมือสแกนอัตโนมัติ การเปลี่ยนไปใช้พอร์ตที่กำหนดเองช่วยลดความเสี่ยงจากการโจมตีเหล่านี้ เนื่องจาก ค่าเฉลี่ยทั่วโลกของความเสียหายจากการละเมิดข้อมูลอยู่ที่ 4.88 ล้านดอลลาร์ ในปี 2024 แม้แต่มาตรการรักษาความปลอดภัยพื้นฐาน เช่น การเปลี่ยน port ก็ยังช่วยป้องกันการโจมตีอัตโนมัติได้อย่างมีประสิทธิภาพ

สำหรับดิสทริบิวชันส่วนใหญ่ของ Linux:

sudo nano /etc/ssh/sshd_config

# Find: #Port 22

# Change to: Port 2222 (choose a port between 1024-65535)

sudo systemctl restart sshd

สำหรับ Ubuntu เวอร์ชัน 23.04 และเวอร์ชันที่ใหม่กว่า:

sudo nano /lib/systemd/system/ssh.socket

# Update ListenStream=2222

sudo systemctl daemon-reload

sudo systemctl restart ssh.service

สำคัญ: ทดสอบพอร์ตใหม่ก่อนปิด session ปัจจุบัน:

# Test connection in a new terminal

ssh username@server-ip -p 2222

อัปเดตกฎ firewall เพื่อเปิดใช้พอร์ตใหม่:

sudo ufw allow 2222

sudo ufw delete allow 22  # Remove old rule after testing

อย่าลืมระบุพอร์ตใหม่เมื่อเชื่อมต่อ: ssh ชื่อผู้ใช้@server-ip -p 2222

6. ปิดพอร์ตเครือข่ายและ IPv6 ที่ไม่ได้ใช้งาน

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

ดูพอร์ตที่เปิดอยู่ในขณะนี้:

sudo netstat -tulpn

# Alternative command

sudo ss -tulpn

ใช้ iptables เพื่อจัดการกฎ firewall และปิดพอร์ตที่ไม่จำเป็น

ปิด IPv6 หากไม่ต้องการใช้งาน:

sudo nano /etc/sysctl.conf

# Add these lines:

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

net.ipv6.conf.lo.disable_ipv6 = 1

# Apply changes

sudo sysctl -p

# Verify IPv6 is disabled

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

# Should return 1

อัปเดตการตั้งค่าเครือข่าย (ระบุไฟล์ netplan ที่ใช้งานจริง):

# Find netplan configuration files

ls /etc/netplan/

# Edit your specific configuration file

sudo nano /etc/netplan/[your-config-file].yaml

# Comment out IPv6 configuration lines

sudo netplan apply

7. การกำหนดค่าไฟร์วอลล์

Firewall ควบคุมการรับส่งข้อมูลเครือข่ายที่เข้าถึงเซิร์ฟเวอร์ได้ โดยบล็อกการเชื่อมต่อที่ไม่ได้รับอนุญาต และอนุญาตเฉพาะทราฟฟิกที่ถูกต้องผ่านพอร์ตที่กำหนด

ตั้งค่า UFW เบื้องต้น:

sudo ufw default deny incoming

sudo ufw default allow outgoing

sudo ufw allow ssh

sudo ufw enable

กฎ firewall พื้นฐาน:

วัตถุประสงค์ คำสั่ง ผลลัพธ์
อนุญาต HTTP sudo ufw allow 80 อนุญาต Web traffic
อนุญาต HTTPS sudo ufw allow 443 Web traffic แบบเข้ารหัส
อนุญาตพอร์ต SSH แบบกำหนดเอง sudo ufw allow 2222 SSH บนพอร์ตที่กำหนดเอง
บล็อก IP ที่เฉพาะเจาะจง sudo ufw deny from 192.168.1.100 IP ถูกบล็อกอย่างสมบูรณ์

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

sudo ufw status verbose

การตั้งค่านี้บล็อกทราฟฟิกขาเข้าทั้งหมด ยกเว้นการเชื่อมต่อ SSH

8. ติดตั้งแอปพลิเคชัน Anti-Malware และ Anti-Virus

ระบบ Linux อาจถูกโจมตีด้วย malware ที่ขโมยข้อมูล ขุด cryptocurrency หรือเปิดช่องทางลับให้ผู้โจมตีเข้าถึงได้ ซอฟต์แวร์ anti-malware ช่วยตรวจจับและกำจัดภัยคุกคามเหล่านี้ก่อนที่จะสร้างความเสียหายต่อระบบ

ติดตั้ง ClamAV สำหรับสแกนไวรัสแบบครอบคลุม:

sudo apt install clamav clamav-daemon clamav-freshclam

sudo freshclam

sudo systemctl enable clamav-freshclam

sudo systemctl start clamav-freshclam

สแกนไดเรกทอรีสำคัญด้วยตนเอง:

sudo clamscan -r /home --infected --remove --bell

sudo clamscan -r /var/www --infected --remove

เพื่อเพิ่มความปลอดภัย ติดตั้ง Maldet ควบคู่กับ ClamAV:

# Verify URL availability before downloading

wget http://www.rfxn.com/downloads/maldetect-current.tar.gz

tar -xzf maldetect-current.tar.gz

cd maldetect-*

sudo ./install.sh

# Note: Always verify download URLs from official sources before use

ตั้งเวลาสแกนอัตโนมัติทุกวันด้วย cron:

# Add to crontab: Daily scan at 2 AM

0 2 * * * /usr/bin/clamscan -r /home --quiet --infected --remove

9. ติดตั้งโปรแกรมตรวจจับ Rootkit

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

ติดตั้งและตั้งค่า Chkrootkit สำหรับตรวจจับ rootkit:

sudo apt install chkrootkit

sudo chkrootkit | grep INFECTED

ติดตั้ง RKHunter เพื่อเพิ่มการป้องกัน rootkit:

sudo apt install rkhunter

sudo rkhunter --update

sudo rkhunter --propupd

sudo rkhunter --check

สร้างกำหนดการสแกน rootkit อัตโนมัติทุกสัปดาห์:

# Add to crontab: Weekly rootkit scan every Sunday at 3 AM

0 3 * * 0 /usr/bin/rkhunter --cronjob --update --quiet

0 4 * * 0 /usr/bin/chkrootkit | grep INFECTED > /var/log/chkrootkit.log

หากตรวจพบ rootkit ให้แยก server ออกจากระบบทันที และพิจารณาติดตั้ง OS ใหม่ทั้งหมด เนื่องจาก rootkit นั้นลบออกได้ยากมากโดยไม่กระทบความสมบูรณ์ของระบบ

10. ใช้ Fail2Ban สำหรับป้องกันการบุกรุก

Fail2Ban ตรวจสอบความพยายามในการเข้าสู่ระบบ และบล็อก IP address ที่แสดงพฤติกรรมน่าสงสัยโดยอัตโนมัติ เช่น การพยายามล็อกอินผิดพลาดซ้ำหลายครั้ง

ติดตั้งอย่างรวดเร็ว:

sudo apt install fail2ban

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

sudo nano /etc/fail2ban/jail.local

การตั้งค่าป้องกัน SSH ที่จำเป็น:

[sshd]

enabled = true

port = ssh

maxretry = 3

bantime = 3600

findtime = 600

ค่าการตั้งค่าหลัก:

การตั้งค่า มูลค่า ความหมาย
maxretry 3 จำนวนครั้งที่ล้มเหลวก่อนถูกบล็อก
ระยะเวลา禁止 3600 ระยะเวลาการบล็อก (1 ชั่วโมง)
ค้นหาเวลา 600 ช่วงเวลาตรวจสอบ (10 นาที)

เริ่มต้นและเปิดใช้งาน:

sudo systemctl start fail2ban

sudo systemctl enable fail2ban

ตรวจสอบ IP ที่ถูกบล็อก:

sudo fail2ban-client status sshd

11. เปิด SELinux

SELinux (Security-Enhanced Linux) กำหนดการควบคุมการเข้าถึงแบบบังคับ เพื่อจำกัดสิ่งที่โปรแกรมสามารถทำได้ แม้ว่าโปรแกรมนั้นจะถูกโจมตีแล้วก็ตาม ซึ่งเป็นชั้นการป้องกันเพิ่มเติมที่เหนือกว่าสิทธิ์ Linux มาตรฐาน

ตรวจสอบและเปิดใช้งาน SELinux:

sestatus

sudo setenforce enforcing

นโยบายของ SELinux ป้องกันไม่ให้แอปพลิเคชันที่ถูกโจมตีเข้าถึงทรัพยากรระบบที่ไม่ได้รับอนุญาต ดู คำแนะนำสั้น ๆ เหล่านี้เพื่อใช้งาน SELinux ได้อย่างเต็มประสิทธิภาพ สำหรับการตั้งค่าที่เหมาะสมที่สุด

12. ปกป้องไฟล์ ไดเรกทอรี และอีเมล

เข้ารหัสไฟล์ที่มีข้อมูลสำคัญเพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต แม้ว่าผู้โจมตีจะเข้าถึงระบบได้แล้วก็ตาม ซึ่งเป็นสิ่งจำเป็นสำหรับการตั้งค่า file server Linux ที่จัดการข้อมูลสำคัญอย่างปลอดภัย

ใช้ GPG สำหรับการเข้ารหัสไฟล์:

gpg --cipher-algo AES256 --compress-algo 1 --s2k-mode 3 --s2k-digest-algo SHA512 --s2k-count 65536 --symmetric filename

ตั้งค่าสิทธิ์การเข้าถึงไฟล์ให้เหมาะสมเพื่อจำกัดการเข้าถึง:

chmod 600 sensitive-file    # Owner read/write only

chmod 700 private-directory # Owner access only

13. สำรองข้อมูลอย่างสม่ำเสมอ

การสำรองข้อมูลอย่างสม่ำเสมอช่วยให้คุณกู้คืนระบบได้หลังเกิดเหตุด้านความปลอดภัย ฮาร์ดแวร์ขัดข้อง หรือข้อมูลสูญหายโดยไม่ตั้งใจ การสำรองข้อมูลแบบอัตโนมัติลดความเสี่ยงจากความผิดพลาดของมนุษย์ และเป็นส่วนสำคัญของกลยุทธ์การโฮสต์ VPS ที่ปลอดภัย

สร้างสคริปต์สำรองข้อมูลอัตโนมัติ:

#!/bin/bash

tar -czf /backup/$(date +%Y%m%d)-system.tar.gz /home /etc /var/log

จัดเก็บข้อมูลสำรองไว้หลายที่ รวมถึงพื้นที่จัดเก็บนอกสถานที่ โดยยึดหลักการสำรองข้อมูลแบบ 3-2-1

14. แบ่งพาร์ติชันดิสก์

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

รูปแบบพาร์ติชันที่แนะนำ:

/boot     – 500MB (ไฟล์บูต)

/         – 20GB (ไฟล์ระบบ)

/home     – 50GB (ข้อมูลผู้ใช้)

/var      – 10GB (ล็อกและฐานข้อมูล)

/tmp      – 2GB (ไฟล์ชั่วคราว)

swap      – 2GB (หน่วยความจำเสมือน)

เมานต์พาร์ติชันชั่วคราวพร้อมข้อจำกัดด้านความปลอดภัย:

# Add to /etc/fstab for permanent mounting

echo "tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev,size=2G 0 0" >> /etc/fstab

echo "tmpfs /var/tmp tmpfs defaults,noexec,nosuid,nodev,size=1G 0 0" >> /etc/fstab

# สมัครทันที

sudo mount -a

ตรวจสอบความปลอดภัยของพาร์ติชัน:

mount | grep -E "(noexec|nosuid|nodev)"

df -h  # Check disk usage by partition

ค่า noexec ตัวเลือกนี้ป้องกันไม่ให้ไฟล์ปฏิบัติการที่เป็นอันตรายทำงาน, nosuid ปิดใช้งานบิต set-user-ID, และ nodev ป้องกันการสร้างไฟล์อุปกรณ์ในไดเรกทอรีชั่วคราว

15. ติดตามล็อกของเซิร์ฟเวอร์

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

ล็อกสำคัญที่ควรติดตาม:

ไฟล์บันทึก วัตถุประสงค์ คำสั่ง
/var/log/auth.log (Debian/Ubuntu)<br>/var/log/secure (CentOS/RHEL) ความพยายามในการเข้าสู่ระบบ sudo tail -f /var/log/auth.log<br>sudo tail -f /var/log/secure
/var/log/syslog (Debian/Ubuntu)<br>/var/log/messages (CentOS/RHEL) ข้อความระบบ sudo tail -f /var/log/syslog<br>sudo tail -f /var/log/messages
/var/log/apache2/access.log (Debian/Ubuntu)<br>/var/log/httpd/access_log (CentOS/RHEL) การเข้าชมเว็บไซต์ sudo tail -f /var/log/apache2/access.log<br>sudo tail -f /var/log/httpd/access_log
/var/log/fail2ban.log ที่อยู่ IP ที่ถูกบล็อก sudo tail -f /var/log/fail2ban.log

คำสั่งวิเคราะห์ Log เบื้องต้น:

# Failed login attempts (adjust path for your distribution)

sudo grep "Failed password" /var/log/auth.log | tail -10

# Successful logins

sudo grep "Accepted" /var/log/auth.log | tail -10

# Large file transfers (adjust path for your web server)

sudo awk '{print $10}' /var/log/apache2/access.log | sort -n | tail -10

การตรวจสอบ Log อัตโนมัติ:

# Install logwatch for daily summaries

sudo apt install logwatch

sudo logwatch --detail Med --mailto [email protected] --service All

ตั้งค่า log rotation เพื่อป้องกันไฟล์ log ใช้พื้นที่ดิสก์มากเกินไป

16. ใช้รหัสผ่านที่แข็งแกร่ง

รหัสผ่านที่แข็งแกร่งช่วยป้องกัน brute force attack และ dictionary attack ได้ รหัสผ่านที่อ่อนแออาจถูกถอดรหัสได้ภายในไม่กี่นาทีด้วยพลังประมวลผลในปัจจุบัน

ความต้องการของรหัสผ่าน:

  • ขั้นต่ำ 12 ตัวอักษร
  • ผสมตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข และสัญลักษณ์
  • ไม่ใช้คำในพจนานุกรมหรือข้อมูลส่วนตัว
  • ไม่ซ้ำกันในแต่ละบัญชี

ใช้ password manager เพื่อสร้างและจัดเก็บรหัสผ่านที่ซับซ้อนอย่างปลอดภัย เมื่อใช้ร่วมกับหลักการ security model with diagram แบบ Linux รหัสผ่านที่แข็งแกร่งจะสร้างชั้นการป้องกันหลายชั้นที่ขัดขวางการเข้าถึงโดยไม่ได้รับอนุญาต

17. ใช้ SFTP แทน FTP

FTP มาตรฐานส่งข้อมูลและข้อมูลรับรองตัวตนในรูปแบบข้อความธรรมดา ทำให้ผู้ดักฟังบนเครือข่ายมองเห็นได้ SFTP เข้ารหัสข้อมูลทั้งหมดระหว่างการส่ง ปกป้องข้อมูลสำคัญ และรองรับสถาปัตยกรรม file server แบบ Linux ที่ปลอดภัย

กำหนดค่าให้เข้าถึงได้เฉพาะ SFTP:

sudo nano /etc/ssh/sshd_config

# Add: Subsystem sftp internal-sftp

ปิดใช้งาน FTP มาตรฐานเพื่อกำจัดความเสี่ยงด้านความปลอดภัย:

sudo systemctl disable vsftpd

sudo systemctl stop vsftpd

18. เปิดใช้งานการอัปเดตอัตโนมัติของ CMS

ระบบจัดการเนื้อหา (WordPress, Drupal, Joomla) ออกแพตช์ความปลอดภัยอยู่เสมอ การเปิดใช้งานการอัปเดตอัตโนมัติช่วยให้ช่องโหว่สำคัญได้รับการแก้ไขอย่างทันท่วงที

สำหรับ WordPress ให้เพิ่มลงใน wp-config.php:

define('WP_AUTO_UPDATE_CORE', true);

add_filter('auto_update_plugin', '__return_true');

add_filter('auto_update_theme', '__return_true');

ตรวจสอบ log การอัปเดตเพื่อให้แน่ใจว่าระบบทำงานได้อย่างถูกต้องและเข้ากันได้

19. ปิดการอัปโหลดแบบไม่ระบุตัวตนผ่าน FTP

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

ตั้งค่า vsftpd ให้บังคับใช้การยืนยันตัวตน:

sudo nano /etc/vsftpd.conf

# ปิดการเข้าถึงแบบไม่ระบุตัวตน

anonymous_enable=NO

# เปิดใช้การยืนยันตัวตนสำหรับผู้ใช้ในระบบ

local_enable=YES

write_enable=YES

local_umask=022

# จำกัดผู้ใช้ให้เข้าถึงได้เฉพาะ home directory ของตัวเอง

chroot_local_user=YES

allow_writeable_chroot=YES

# การตั้งค่าความปลอดภัย

ssl_enable=YES

ssl_tlsv1=YES

ssl_sslv2=NO

ssl_sslv3=NO

รีสตาร์ทบริการ FTP:

sudo systemctl restart vsftpd

sudo systemctl enable vsftpd

สร้างบัญชีผู้ใช้ FTP พร้อมสิทธิ์ที่จำกัด:

sudo adduser ftpuser

sudo usermod -d /var/ftp/uploads ftpuser

sudo chown ftpuser:ftpuser /var/ftp/uploads

sudo chmod 755 /var/ftp/uploads

ตรวจสอบ access log ของ FTP เพื่อหากิจกรรมที่น่าสงสัย:

sudo tail -f /var/log/vsftpd.log

20. ตั้งค่าการป้องกัน Brute Force

เพิ่มชั้นการป้องกัน brute force หลายชั้นนอกเหนือจาก Fail2Ban เพื่อรับมือกับการโจมตีอัตโนมัติที่ซับซ้อน

ตั้งค่าการป้องกันเพิ่มเติม:

# Limit SSH connection attempts

sudo nano /etc/ssh/sshd_config

# Add: MaxAuthTries 3

# Add: ClientAliveInterval 300

# Add: ClientAliveCountMax 2

ใช้เครื่องมืออย่าง DenyHosts ควบคู่กับ Fail2Ban เพื่อการป้องกันที่ครอบคลุม

สรุป

การรักษาความปลอดภัย Linux VPS ต้องอาศัยการป้องกันหลายชั้น ตั้งแต่การปรับค่าพื้นฐานไปจนถึงระบบตรวจสอบขั้นสูง เริ่มจากมาตรการพื้นฐานก่อน ได้แก่ การอัปเดตซอฟต์แวร์ การตั้งค่า firewall และการ hardening SSH จากนั้นจึงเพิ่มเครื่องมือขั้นสูง เช่น ระบบตรวจจับการบุกรุกและการตรวจสอบอัตโนมัติ

เซิร์ฟเวอร์ Linux ที่ปลอดภัยต้องการการดูแลรักษาอย่างต่อเนื่อง ไม่ใช่แค่ตั้งค่าครั้งเดียวแล้วจบ ตรวจสอบ log อัปเดตซอฟต์แวร์ และปรับมาตรการรักษาความปลอดภัยสม่ำเสมอตามภัยคุกคามที่เปลี่ยนแปลงไป การลงทุนกับการตั้งค่าความปลอดภัยที่ถูกต้องช่วยป้องกันการรั่วไหลของข้อมูลและรักษาความเสถียรของระบบในระยะยาว

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

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

ควรอัปเดต Linux VPS บ่อยแค่ไหน?

แพตช์ความปลอดภัยวิกฤตให้อัปเดตทันที ส่วนการอัปเดตระบบทั้งหมดควรทำทุกสัปดาห์

จำเป็นต้องเปลี่ยน port ของ SSH จริงหรือ?

จำเป็น การเปลี่ยน port ของ SSH ช่วยลดการโจมตีอัตโนมัติได้มากกว่า 90%

สามารถใช้มาตรการความปลอดภัยทั้ง 20 ข้อพร้อมกันได้เลยไหม?

เริ่มจากมาตรการข้อ 1-10 ก่อน แล้วค่อยทยอยเพิ่มเทคนิคขั้นสูง เพื่อป้องกันความขัดแย้งในการตั้งค่า

จะรู้ได้อย่างไรว่าเซิร์ฟเวอร์ถูกบุกรุก?

ตรวจสอบ log เพื่อหากิจกรรมผิดปกติ ดู process ที่กำลังทำงานอยู่ และตรวจสอบ network connection เป็นประจำ

ถ้าถูกล็อคออกหลังจากเปิดใช้มาตรการเหล่านี้ควรทำอย่างไร?

ทดสอบการตั้งค่าก่อนออกจากระบบเสมอ เปิด session SSH สำรองไว้ และใช้ console access ของผู้ให้บริการ hosting

มาตรการความปลอดภัยเหล่านี้เพียงพอสำหรับ production server ไหม?

สิ่งเหล่านี้เป็นรากฐานที่มั่นคง สภาพแวดล้อม Production อาจต้องการการมอนิเตอร์เพิ่มเติม การตรวจสอบ Compliance และเครื่องมือรักษาความปลอดภัยเฉพาะทาง

แชร์

บทความอื่นจากบล็อก

อ่านต่อ

ภาพประกอบสำหรับ Cloudzy ในคู่มือ MikroTik L2TP VPN แสดงแล็ปท็อปที่เชื่อมต่อกับ Server Rack ผ่านอุโมงค์ดิจิทัลสีฟ้าและทองพร้อมไอคอนโล่ป้องกัน
ความปลอดภัยและเครือข่าย

การตั้งค่า MikroTik L2TP VPN (พร้อม IPsec): คู่มือ RouterOS (2026)

ในการตั้งค่า MikroTik L2TP VPN นี้ L2TP ทำหน้าที่สร้าง Tunnel ส่วน IPsec ดูแลการเข้ารหัสและความสมบูรณ์ของข้อมูล การใช้งานร่วมกันช่วยให้รองรับ Native Client ได้โดยไม่ต้องพึ่งพาซอฟต์แวร์ของบุคคลที่สาม

เรกซา ไซรัสเรกซา ไซรัส อ่าน 9 นาที
หน้าต่าง Terminal แสดงข้อความเตือน SSH เกี่ยวกับการเปลี่ยนแปลง Remote Host Identification พร้อมหัวข้อ Fix Guide และแบรนด์ Cloudzy บนพื้นหลังสีเขียวเทาเข้ม
ความปลอดภัยและเครือข่าย

คำเตือน: Remote Host Identification Has Changed และวิธีแก้ไข

SSH คือโปรโตคอลเครือข่ายที่ปลอดภัย สร้างช่องเชื่อมต่อที่เข้ารหัสระหว่างระบบ ยังคงเป็นที่นิยมในหมู่นักพัฒนาที่ต้องการเข้าถึงเครื่องระยะไกลโดยไม่จำเป็นต้องใช้อินเทอร์เฟซแบบกราฟิก

เรกซา ไซรัสเรกซา ไซรัส อ่าน 10 นาที
ภาพประกอบคู่มือแก้ปัญหา DNS พร้อมสัญลักษณ์เตือนและเซิร์ฟเวอร์สีฟ้าบนพื้นหลังมืด สำหรับข้อผิดพลาด Name Resolution ของ Linux
ความปลอดภัยและเครือข่าย

Temporary Failure in Name Resolution คืออะไร และแก้ไขอย่างไร?

ขณะใช้งาน Linux คุณอาจพบข้อผิดพลาด Temporary Failure in Name Resolution เมื่อพยายามเปิดเว็บไซต์ อัปเดตแพ็กเกจ หรือรันงานที่ต้องใช้การเชื่อมต่ออินเทอร์เน็ต

เรกซา ไซรัสเรกซา ไซรัส อ่าน 12 นาที

พร้อม Deploy แล้วหรือยัง? เริ่มต้นที่ $2.48/เดือน

Cloud อิสระ ให้บริการมาตั้งแต่ปี 2008. AMD EPYC, NVMe, 40 Gbps. คืนเงินภายใน 14 วัน