Skip to main content

Security Best Practices ในการใช้ Linux

บทนำ

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

1. การตั้งรหัสผ่านที่แข็งแกร่ง (Strong Passwords)

1.1 การใช้รหัสผ่านที่ยากต่อการคาดเดา

รหัสผ่านที่แข็งแกร่งควรมีลักษณะดังนี้:

  • ประกอบด้วยตัวอักษรพิมพ์ใหญ่และพิมพ์เล็ก, ตัวเลข, และสัญลักษณ์พิเศษ
  • มีความยาวอย่างน้อย 12 ตัวอักษร
  • หลีกเลี่ยงการใช้ข้อมูลส่วนบุคคลหรือรหัสผ่านที่คาดเดาง่าย เช่น "123456" หรือ "password"

1.2 การใช้เครื่องมือจัดการรหัสผ่าน

เครื่องมือจัดการรหัสผ่านอย่างเช่น LastPass, 1Password หรือ Bitwarden สามารถช่วยในการเก็บรหัสผ่านที่ซับซ้อนและปลอดภัย

2. การใช้การยืนยันตัวตนสองขั้นตอน (Two-Factor Authentication - 2FA)

2.1 การเปิดใช้งาน 2FA

การเปิดใช้งาน 2FA เพิ่มความปลอดภัยให้กับการเข้าสู่ระบบของผู้ใช้ โดยการให้ผู้ใช้กรอกรหัสที่ส่งมาทางโทรศัพท์มือถือหรือแอปพลิเคชันการยืนยันตัวตน เช่น Google Authenticator หรือ Authy

2.2 การเปิดใช้ 2FA สำหรับ SSH

คุณสามารถใช้ 2FA ในการเข้าสู่ระบบผ่าน SSH โดยการใช้เครื่องมือเช่น pam_google_authenticator เพื่อเพิ่มชั้นการป้องกันเพิ่มเติมในการเข้าสู่ระบบ

3. การจัดการการเข้าถึง (Access Management)

3.1 การใช้กลุ่มผู้ใช้ (User Groups)

การจัดการการเข้าถึงควรทำผ่านการใช้กลุ่มผู้ใช้ (User Groups) เพื่อจำกัดสิทธิ์ในการเข้าถึงไฟล์และทรัพยากรต่างๆ ภายในระบบ

# การสร้างกลุ่มผู้ใช้
sudo groupadd devgroup

# การเพิ่มผู้ใช้ลงในกลุ่ม
sudo usermod -aG devgroup username

3.2 การจำกัดสิทธิ์ของผู้ใช้

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

# การให้สิทธิ์ให้ผู้ใช้คนอื่นอ่านไฟล์
chmod 644 filename.txt

# การเปลี่ยนเจ้าของไฟล์
chown username:groupname filename.txt

4. การปิดการใช้งานบริการที่ไม่จำเป็น (Disable Unnecessary Services)

4.1 การตรวจสอบและปิดบริการที่ไม่จำเป็น

การปิดบริการที่ไม่จำเป็นจะช่วยลดช่องทางที่อาจถูกโจมตีจากภายนอก

# การตรวจสอบสถานะของบริการทั้งหมด
sudo systemctl list-units --type=service

# การหยุดบริการที่ไม่จำเป็น
sudo systemctl stop service_name

# การปิดการเริ่มต้นของบริการ
sudo systemctl disable service_name

4.2 การใช้ ufw (Uncomplicated Firewall)

การตั้งค่าไฟร์วอลล์ช่วยในการป้องกันการเข้าถึงที่ไม่ได้รับอนุญาตจากภายนอก

# เปิดใช้งาน ufw
sudo ufw enable

# กำหนดให้ไฟร์วอลล์อนุญาตให้เข้าถึงเฉพาะ SSH
sudo ufw allow ssh

5. การอัปเดตซอฟต์แวร์อย่างสม่ำเสมอ (Regular Software Updates)

5.1 การติดตั้งอัปเดตอัตโนมัติ

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

# การติดตั้งอัปเดตทั้งหมด
sudo apt update && sudo apt upgrade -y

# การติดตั้งอัปเดตอัตโนมัติ
sudo apt install unattended-upgrades

5.2 การตรวจสอบการอัปเดตซอฟต์แวร์

การตรวจสอบซอฟต์แวร์ที่ต้องอัปเดตช่วยให้มั่นใจว่าไม่มีซอฟต์แวร์ที่เก่าหรือมีช่องโหว่ในระบบ

# การตรวจสอบซอฟต์แวร์ที่มีการอัปเดต
sudo apt list --upgradable

6. การใช้ SSH Keys แทนรหัสผ่าน

6.1 การสร้าง SSH Key

การใช้ SSH Key จะช่วยเพิ่มความปลอดภัยในการเชื่อมต่อผ่าน SSH มากกว่าการใช้รหัสผ่าน

# การสร้าง SSH Key
ssh-keygen -t rsa -b 4096

6.2 การใช้งาน SSH Key สำหรับการเข้าถึง

หลังจากสร้าง SSH Key แล้ว, คุณต้องคัดลอกคีย์สาธารณะไปยังเซิร์ฟเวอร์ที่ต้องการเชื่อมต่อ

# การคัดลอก SSH Key ไปยังเซิร์ฟเวอร์
ssh-copy-id user@remote-server

7. การบันทึกและตรวจสอบ Log

7.1 การตรวจสอบไฟล์ Log

การบันทึกและตรวจสอบการกระทำในระบบจะช่วยให้คุณสามารถระบุพฤติกรรมที่ไม่ปกติหรือการโจมตีได้

# การตรวจสอบไฟล์ log
sudo tail -f /var/log/auth.log

7.2 การใช้เครื่องมือในการตรวจสอบความปลอดภัย

เครื่องมืออย่าง fail2ban สามารถช่วยป้องกันการโจมตีด้วยการบล็อก IP ที่พยายามเข้าสู่ระบบไม่สำเร็จหลายครั้ง

# การติดตั้ง fail2ban
sudo apt install fail2ban

8. การใช้ SELinux หรือ AppArmor

8.1 การเปิดใช้งาน SELinux

SELinux ช่วยในการกำหนดนโยบายการเข้าถึงทรัพยากรต่างๆ เพื่อเพิ่มความปลอดภัย

# การตรวจสอบสถานะของ SELinux
sestatus

8.2 การใช้ AppArmor

AppArmor เป็นระบบการป้องกันที่ใช้ในการจำกัดสิทธิ์ของโปรแกรม

# การเปิดใช้งาน AppArmor
sudo systemctl start apparmor

สรุป

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