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

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

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

มาตรการรักษาความปลอดภัยเหล่านี้ก้าวหน้าตั้งแต่การเปลี่ยนแปลงการกำหนดค่าพื้นฐานไปจนถึงระบบการตรวจสอบขั้นสูง การเรียนรู้วิธีการรักษาความปลอดภัยสภาพแวดล้อมเซิร์ฟเวอร์ Linux ต้องใช้ขั้นตอนเหล่านี้อย่างเป็นระบบเพื่อสร้างเซิร์ฟเวอร์ Linux ที่ปลอดภัยที่ต้านทานการโจมตีทั่วไป
แต่ละเทคนิคจะจัดการกับช่องโหว่เฉพาะที่ผู้โจมตีมักใช้ประโยชน์ วิธีการมีตั้งแต่การกำหนดค่าพื้นฐานที่เซิร์ฟเวอร์ทุกเครื่องต้องใช้ไปจนถึงระบบตรวจสอบที่ซับซ้อนสำหรับการตรวจจับภัยคุกคามขั้นสูง มาตรการบางอย่างให้การป้องกันทันที ในขณะที่มาตรการอื่นๆ สร้างความยืดหยุ่นด้านความปลอดภัยในระยะยาว ลำดับการดำเนินการมีความสำคัญ - ขั้นตอนการเสริมความแข็งแกร่งขั้นพื้นฐานควรอยู่ก่อนเครื่องมือตรวจสอบขั้นสูง กลยุทธ์ทั้ง 20 ประการนี้ร่วมกันสร้างชั้นความปลอดภัยที่ทับซ้อนกันซึ่งจะช่วยลดพื้นที่การโจมตีของเซิร์ฟเวอร์ของคุณได้อย่างมาก
1. ปรับปรุงซอฟต์แวร์ให้ทันสมัยอยู่เสมอ
ซอฟต์แวร์ที่ล้าสมัยมีช่องโหว่ด้านความปลอดภัยที่ผู้โจมตีหาประโยชน์ นักพัฒนาซอฟต์แวร์จะปล่อยแพตช์ที่แก้ไขช่องโหว่เหล่านี้เป็นประจำ ทำให้การอัพเดตแนวป้องกันแรกของคุณเพื่อรักษาความปลอดภัยของระบบเซิร์ฟเวอร์ Linux
กำหนดค่าการอัปเดตอัตโนมัติสำหรับแพตช์ความปลอดภัยที่สำคัญ:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
ตั้งค่าการแจ้งเตือนทางอีเมลสำหรับการอัปเดตที่มีอยู่เพื่อรับทราบข้อมูลเกี่ยวกับแพตช์รักษาความปลอดภัยที่ต้องมีการตรวจสอบโดยเจ้าหน้าที่
2. ปิดการใช้งานการเข้าสู่ระบบรูท
เซิร์ฟเวอร์ Linux ทุกเครื่องมีบัญชีผู้ใช้ “รูท” พร้อมการเข้าถึงระบบไม่จำกัด เนื่องจากแฮกเกอร์รู้ว่าบัญชีนี้มีอยู่เสมอ พวกเขาจึงกำหนดเป้าหมายไปที่มัน การโจมตีด้วยกำลังดุร้าย เพื่อเดารหัสผ่านและรับการควบคุมเซิร์ฟเวอร์โดยสมบูรณ์
สร้างผู้ใช้ที่เป็นผู้ดูแลระบบใหม่ก่อนปิดใช้งานการเข้าถึงรูท:
# 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. สร้างคู่คีย์ SSH
การเข้าสู่ระบบด้วยรหัสผ่าน โดยเฉพาะอย่างยิ่งหากรหัสผ่านไม่รัดกุม อาจเป็นช่องโหว่ได้ การตรวจสอบสิทธิ์คีย์ SSH เสนอทางเลือกที่ปลอดภัยยิ่งขึ้น การใช้คีย์เข้ารหัสแทนรหัสผ่าน คุณมั่นใจได้ถึงวิธีการตรวจสอบความถูกต้องที่แข็งแกร่งและถอดรหัสยากยิ่งขึ้น
มาตรการรักษาความปลอดภัยนี้มีความสำคัญเป็นอย่างยิ่ง ข้อมูลประจำตัวที่ถูกขโมยทำหน้าที่เป็นเวกเตอร์การโจมตีเริ่มต้นใน 24% ของการละเมิดข้อมูล ตามการวิจัยด้านความปลอดภัย การโจมตีเหล่านี้ใช้เวลาในการตรวจจับและกักกันนานกว่าวิธีอื่นๆ ทำให้การป้องกันผ่านคีย์ SSH เป็นสิ่งจำเป็น
สร้างคู่คีย์ SSH เพื่อการตรวจสอบสิทธิ์ที่ปลอดภัย:
ssh-keygen -t rsa -b 4096
ssh-copy-id username@server-ip
คีย์ SSH สามารถมีความยาวได้สูงสุด 4,096 บิต ทำให้มีความปลอดภัยมากกว่ารหัสผ่านที่ซับซ้อนแบบทวีคูณ
4. เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัย
การตรวจสอบสิทธิ์แบบสองปัจจัยเพิ่มขั้นตอนการตรวจสอบที่สองนอกเหนือจากรหัสผ่าน แม้ว่าผู้โจมตีจะได้รับรหัสผ่านของคุณ พวกเขาก็ไม่สามารถเข้าถึงเซิร์ฟเวอร์ของคุณได้หากไม่มีปัจจัยการรับรองความถูกต้องที่สอง
ติดตั้งและกำหนดค่าการรับรองความถูกต้องด้วยสองปัจจัย:
sudo apt install libpam-google-authenticator
google-authenticator
กำหนดค่าแอปตรวจสอบความถูกต้องบนมือถือของคุณเพื่อสร้างรหัสตามเวลาสำหรับการเข้าถึงเซิร์ฟเวอร์
5. เปลี่ยนพอร์ต SSH
พอร์ต SSH เริ่มต้น (22) ได้รับการพยายามโจมตีอย่างต่อเนื่องจากเครื่องมือสแกนอัตโนมัติ การเปลี่ยนไปใช้พอร์ตแบบกำหนดเองจะช่วยลดโอกาสเสี่ยงต่อการโจมตีอัตโนมัติเหล่านี้ โดยพิจารณาว่า ค่าใช้จ่ายเฉลี่ยทั่วโลกของการละเมิดข้อมูลสูงถึง 4.88 ล้านดอลลาร์ ในปี 2024 แม้แต่มาตรการรักษาความปลอดภัยง่ายๆ เช่น การเปลี่ยนพอร์ต ก็มอบการป้องกันที่มีคุณค่าต่อภัยคุกคามอัตโนมัติ
สำหรับลีนุกซ์รุ่นส่วนใหญ่:
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
สำคัญ: ทดสอบพอร์ตใหม่ก่อนที่จะปิดเซสชันปัจจุบันของคุณ:
# Test connection in a new terminal
ssh username@server-ip -p 2222
อัปเดตกฎไฟร์วอลล์ของคุณเพื่ออนุญาตพอร์ตใหม่:
sudo ufw allow 2222
sudo ufw delete allow 22 # Remove old rule after testing
อย่าลืมระบุพอร์ตใหม่เมื่อเชื่อมต่อ: ssh ชื่อผู้ใช้@เซิร์ฟเวอร์-ip -p 2222
6. ปิดการใช้งานพอร์ตเครือข่ายที่ไม่ได้ใช้และ IPv6
พอร์ตเครือข่ายแบบเปิดเป็นจุดเริ่มต้นสำหรับผู้โจมตี บริการที่ทำงานอยู่แต่ละรายการจะสร้างช่องโหว่ที่อาจเกิดขึ้น ดังนั้นให้ปิดการใช้งานบริการที่ไม่จำเป็นและพอร์ตที่เกี่ยวข้อง
ดูพอร์ตที่เปิดอยู่ในปัจจุบัน:
sudo netstat -tulpn
# Alternative command
sudo ss -tulpn
ใช้ ไอพีเทเบิล เพื่อจัดการกฎไฟร์วอลล์และปิดพอร์ตที่ไม่จำเป็น
ปิดการใช้งาน 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. กำหนดค่าไฟร์วอลล์
ไฟร์วอลล์ควบคุมการรับส่งข้อมูลเครือข่ายที่สามารถเข้าถึงเซิร์ฟเวอร์ของคุณได้ พวกเขาบล็อกการเชื่อมต่อที่ไม่ได้รับอนุญาตในขณะที่อนุญาตการรับส่งข้อมูลที่ถูกต้องผ่านพอร์ตที่ระบุ
การตั้งค่า UFW ด่วน:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
กฎไฟร์วอลล์ที่สำคัญ:
| วัตถุประสงค์ | สั่งการ | ผลลัพธ์ |
| อนุญาต HTTP | sudo ufw อนุญาต 80 | อนุญาตให้มีการเข้าชมเว็บ |
| อนุญาต HTTPS | sudo ufw อนุญาต 443 | การเข้าชมเว็บที่ปลอดภัย |
| อนุญาตพอร์ต SSH ที่กำหนดเอง | sudo ufw อนุญาต 2222 | SSH บนพอร์ตที่กำหนดเอง |
| บล็อก IP เฉพาะ | sudo ufw ปฏิเสธจาก 192.168.1.100 | IP ถูกบล็อกอย่างสมบูรณ์ |
ตรวจสอบสถานะไฟร์วอลล์:
sudo ufw status verbose
การกำหนดค่านี้จะบล็อกการรับส่งข้อมูลขาเข้าทั้งหมด ยกเว้นการเชื่อมต่อ SSH
8. ติดตั้งแอปพลิเคชันป้องกันมัลแวร์และป้องกันไวรัส
ระบบ Linux อาจติดมัลแวร์ที่ขโมยข้อมูล ขุดคริปโตเคอเรนซี่ หรือให้ผู้โจมตีเข้าถึงประตูหลังได้ ซอฟต์แวร์ป้องกันมัลแวร์ตรวจจับและกำจัดภัยคุกคามเหล่านี้ก่อนที่จะโจมตีระบบของคุณ
ติดตั้ง 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. ติดตั้งเครื่องสแกนรูทคิท
รูทคิทเป็นโปรแกรมที่เป็นอันตรายซึ่งซ่อนลึกอยู่ในระบบปฏิบัติการ ซึ่งมักจะตรวจไม่พบโดยซอฟต์แวร์ป้องกันไวรัสมาตรฐาน พวกเขาสามารถให้ผู้โจมตีสามารถเข้าถึงระบบของคุณอย่างต่อเนื่องในขณะที่วิธีการตรวจจับปกติมองไม่เห็น
ติดตั้งและกำหนดค่า Chkrootkit สำหรับการตรวจจับรูทคิท:
sudo apt install chkrootkit
sudo chkrootkit | grep INFECTED
ติดตั้ง RKHunter เพื่อป้องกันรูทคิทเพิ่มเติม:
sudo apt install rkhunter
sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check
สร้างการสแกนรูทคิทอัตโนมัติรายสัปดาห์:
# 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
หากตรวจพบรูทคิท ให้แยกเซิร์ฟเวอร์ทันทีและพิจารณาการติดตั้งระบบปฏิบัติการใหม่ทั้งหมด เนื่องจากรูทคิทอาจลบออกทั้งหมดได้ยากมากในขณะที่ยังคงรักษาความสมบูรณ์ของระบบไว้
10. ใช้ Fail2Ban เพื่อป้องกันการบุกรุก
Fail2Ban ตรวจสอบความพยายามในการเข้าสู่ระบบและบล็อกที่อยู่ IP ที่แสดงพฤติกรรมที่เป็นอันตรายโดยอัตโนมัติ เช่น การพยายามเข้าสู่ระบบล้มเหลวซ้ำแล้วซ้ำอีก
การติดตั้งอย่างรวดเร็ว:
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
ค่าการกำหนดค่าที่สำคัญ:
| การตั้งค่า | ค่า | ความหมาย |
| แม็กซ์รีทรีท | 3 | ความพยายามล้มเหลวก่อนที่จะถูกแบน |
| แบนไทม์ | 3600 | ระยะเวลาแบน (1 ชั่วโมง) |
| หาเวลา | 600 | กรอบเวลา (10 นาที) |
เริ่มต้นและเปิดใช้งาน:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
ตรวจสอบ IP ที่ถูกแบน:
sudo fail2ban-client status sshd
11. เปิด SELinux
Security-Enhanced Linux (SELinux) ให้การควบคุมการเข้าถึงที่จำเป็นซึ่งจำกัดสิ่งที่โปรแกรมสามารถทำได้ แม้ว่าโปรแกรมเหล่านั้นจะถูกบุกรุกก็ตาม มันสร้างชั้นความปลอดภัยเพิ่มเติมนอกเหนือจากสิทธิ์ Linux มาตรฐาน
ตรวจสอบและเปิดใช้งาน SELinux:
sestatus
sudo setenforce enforcing
นโยบาย SELinux ป้องกันไม่ให้แอปพลิเคชันที่ถูกบุกรุกเข้าถึงทรัพยากรระบบที่ไม่ได้รับอนุญาต ปฏิบัติตามสิ่งเหล่านี้ คำแนะนำสั้นๆ เพื่อใช้ประโยชน์สูงสุดจาก SELinux เพื่อการกำหนดค่าที่เหมาะสมที่สุด
12. ปกป้องไฟล์ ไดเร็กทอรี และอีเมล
เข้ารหัสไฟล์ที่ละเอียดอ่อนเพื่อป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต แม้ว่าผู้โจมตีจะสามารถเข้าถึงระบบได้ก็ตาม นี่เป็นสิ่งจำเป็นสำหรับการกำหนดค่า 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. สร้างการแบ่งพาร์ติชันดิสก์
การแบ่งพาร์ติชันดิสก์จะแยกไฟล์ระบบออกจากข้อมูลผู้ใช้ ซึ่งจำกัดความเสียหายหากพาร์ติชันหนึ่งถูกบุกรุก นอกจากนี้ยังป้องกันไม่ให้พื้นที่ดิสก์หมดไปในพื้นที่หนึ่งไม่ให้ส่งผลกระทบต่อทั้งระบบ
รูปแบบพาร์ติชันที่แนะนำ:
/บูต – 500MB (ไฟล์บูต)
/ – 20GB (ไฟล์ระบบ)
/บ้าน – 50GB (ข้อมูลผู้ใช้)
/var – 10GB (บันทึกและฐานข้อมูล)
/tmp – 2GB (ไฟล์ชั่วคราว)
แลกเปลี่ยน – 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 ตัวเลือกป้องกันไม่ให้โปรแกรมปฏิบัติการที่เป็นอันตรายทำงาน โนซูอิด ปิดการใช้งานบิต set-user-ID และ โหนด ป้องกันการสร้างไฟล์อุปกรณ์ในไดเร็กทอรีชั่วคราว
15. ตรวจสอบบันทึกเซิร์ฟเวอร์
บันทึกของเซิร์ฟเวอร์จะบันทึกกิจกรรมของระบบทั้งหมด โดยมีสัญญาณเตือนล่วงหน้าเกี่ยวกับเหตุการณ์ด้านความปลอดภัย การตรวจสอบบันทึกเป็นประจำจะช่วยระบุรูปแบบที่ผิดปกติก่อนที่จะกลายเป็นภัยคุกคามร้ายแรง
บันทึกที่สำคัญในการตรวจสอบ:
| ไฟล์บันทึก | วัตถุประสงค์ | สั่งการ |
| /var/log/auth.log (เดเบียน/อูบุนตู)<br>/var/log/secure (CentOS/RHEL) | ความพยายามเข้าสู่ระบบ | sudo tail -f /var/log/auth.log<br>sudo tail -f /var/log/secure.php |
| /var/log/syslog (เดเบียน/อูบุนตู)<br>/var/log/messages (CentOS/RHEL) | ข้อความของระบบ | sudo tail -f /var/log/syslog.php<br>sudo tail -f /var/log/messages |
| /var/log/apache2/access.log (เดเบียน/อูบุนตู)<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 |
คำสั่งการวิเคราะห์บันทึกด่วน:
# 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
การตรวจสอบบันทึกอัตโนมัติ:
# Install logwatch for daily summaries
sudo apt install logwatch
sudo logwatch --detail Med --mailto [email protected] --service All
ตั้งค่าการหมุนเวียนบันทึกเพื่อป้องกันไม่ให้ไฟล์บันทึกใช้พื้นที่ดิสก์มากเกินไป
16. ใช้รหัสผ่านที่รัดกุม
รหัสผ่านที่คาดเดายากจะต้านทานการโจมตีแบบใช้กำลังดุร้ายและการโจมตีด้วยพจนานุกรม รหัสผ่านที่อ่อนแอสามารถถอดรหัสได้ภายในไม่กี่นาทีโดยใช้พลังการประมวลผลสมัยใหม่
ข้อกำหนดรหัสผ่าน:
- ขั้นต่ำ 12 ตัวอักษร
- การผสมผสานระหว่างตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข และสัญลักษณ์
- ไม่มีคำในพจนานุกรมหรือข้อมูลส่วนบุคคล
- ไม่ซ้ำกันสำหรับแต่ละบัญชี
ใช้เครื่องมือจัดการรหัสผ่านเพื่อสร้างและจัดเก็บรหัสผ่านที่ซับซ้อนอย่างปลอดภัย เมื่อรวมกับโมเดลความปลอดภัยของ Linux อื่นๆ ที่มีหลักการไดอะแกรม รหัสผ่านที่รัดกุมจะสร้างชั้นการป้องกันหลายชั้นที่ป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
17. ต้องการ SFTP มากกว่า FTP
FTP มาตรฐานส่งข้อมูลและข้อมูลประจำตัวในรูปแบบข้อความธรรมดา ทำให้ผู้ดักฟังเครือข่ายมองเห็นได้ SFTP เข้ารหัสการรับส่งข้อมูลทั้งหมด ปกป้องข้อมูลที่ละเอียดอ่อน และรองรับสถาปัตยกรรม 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');
ตรวจสอบบันทึกการอัปเดตเพื่อให้มั่นใจถึงความเข้ากันได้และฟังก์ชันการทำงาน
19. ปิดการใช้งานการอัพโหลด FTP แบบไม่ระบุชื่อ
Anonymous FTP ช่วยให้ใครก็ตามสามารถอัพโหลดไฟล์ไปยังเซิร์ฟเวอร์ของคุณโดยไม่ต้องมีการตรวจสอบสิทธิ์ สิ่งนี้อาจทำให้เซิร์ฟเวอร์ของคุณโฮสต์เนื้อหาที่ผิดกฎหมาย มัลแวร์ หรือกลายเป็นจุดแจกจ่ายสำหรับการโจมตี
กำหนดค่า vsftpd เพื่อต้องมีการรับรองความถูกต้อง:
sudo nano /etc/vsftpd.conf
# ปิดการใช้งานการเข้าถึงแบบไม่ระบุชื่อ
anonymous_enable=NO
# เปิดใช้งานการตรวจสอบสิทธิ์ผู้ใช้ท้องถิ่น
local_enable=YES
write_enable=YES
local_umask=022
# จำกัด ผู้ใช้ให้อยู่ในโฮมไดเร็กทอรีของตน
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
ตรวจสอบบันทึกการเข้าถึง 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 ต้องใช้การป้องกันหลายชั้น ตั้งแต่การเปลี่ยนแปลงการกำหนดค่าพื้นฐานไปจนถึงระบบการตรวจสอบขั้นสูง เริ่มต้นด้วยมาตรการรักษาความปลอดภัยขั้นพื้นฐาน (การอัปเดตซอฟต์แวร์ การกำหนดค่าไฟร์วอลล์ การป้องกัน SSH) ก่อนที่จะเพิ่มเครื่องมือที่ซับซ้อน เช่น การตรวจจับการบุกรุกและการตรวจสอบอัตโนมัติ
เซิร์ฟเวอร์ Linux ที่ปลอดภัยต้องการการบำรุงรักษาอย่างต่อเนื่อง ไม่ใช่การกำหนดค่าเพียงครั้งเดียว ตรวจสอบบันทึก อัปเดตซอฟต์แวร์ และปรับมาตรการรักษาความปลอดภัยเป็นประจำเมื่อมีภัยคุกคามเกิดขึ้น การลงทุนในการกำหนดค่าความปลอดภัยที่เหมาะสมจะช่วยป้องกันการละเมิดข้อมูลและรักษาความน่าเชื่อถือของระบบ
โปรดจำไว้ว่ามาตรการรักษาความปลอดภัยเหล่านี้ทำงานร่วมกัน ไม่มีเทคนิคใดที่จะให้การป้องกันที่สมบูรณ์ได้ การใช้กลยุทธ์ทั้ง 20 กลยุทธ์จะสร้างชั้นความปลอดภัยที่ทับซ้อนกัน ซึ่งจะช่วยลดความเสี่ยงของเซิร์ฟเวอร์ของคุณต่อการโจมตีทั่วไปได้อย่างมาก ไม่ว่าคุณจะต้องการการกำหนดค่า Linux เซิร์ฟเวอร์ไฟล์ที่ปลอดภัยหรือการป้องกันโฮสติ้ง VPS ที่ปลอดภัยทั่วไป ขั้นตอนพื้นฐานเหล่านี้มอบการรักษาความปลอดภัยที่จำเป็น