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

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

  • แบ่ง partition แยกตามความต้องการของการใช้ service นั้นๆ
  • สั่ง encrypt partition ที่ต้องการ
  • ติดตั้ง service ที่ต้องใช้เท่านั้น และใช้ ssh สำหรับ remote เท่านั้น
  • ตั้งรหัสผ่านสำหรับผู้ใช้ให้ยากเข้าไว้ ตัวเล็ก ตัวใหญ่ ตัวเลข สัญลักษณ์ ความยาวมากกว่า 8 ตัวอักษร
  • ตั้งค่าเวลากับ ntp server


หลังจากติดตั้งระบบปฏิบัติการเสร็จ คุณจะสามารถ remote ผ่าน ssh ไปยังเครื่อง server ได้ ขั้นตอนถัดมาคือ อุดช่องทางที่จะ login ผ่านหน้าเครื่องและ remote ได้แก่

  • ตั้งรหัสผ่านให้ GRUB ปิดช่อง bypass ผ่าน bootloader
  • ตั้งค่า sshd ไม่ให้ใช้ root ในการ remote login บังคับใช้ ssh-key ในการ login เท่านั้น
  • กำหนด IP filter ให้ remote login ได้บาง ip address เท่านั้น
  • ตั้ง policy ของ fail2ban ส่วน ssh ป้องกันการ remote login เช่น login ผิด 3 ครั้งให้ band ip address นั้นเป็นต้น

หากใช้ SELinux ให้เปิดใช้งานเลยครับ จากนั้นอัพเดทระบบปฏิบัติการส่วน security patch หากมีบริการ System Configuration Management อยู่ ให้ลงทะเบียนเครื่องในระบบ จัดกลุ่มและติดตั้ง service ที่ต้องการให้บริการตามด้วย hardening service นั้นๆ ตาม policy ที่กำหนด จากนั้นทำ Penetration test เพื่อตรวจสอบอีกครั้งว่ามีช่องโหว่ตรงไหนอีกหรือเปล่า หากพบช่องโหว่ให้รีบแก้ไข ลงทะเบียนเครื่องในระบบ Service Monitoring และ Log Management จะได้ติดตามดูพฤติกรรมการใช้งานและตรวจสอบเหตุการณ์ต่างๆ ได้ สำหรับท่านใดที่มีคำแนะนำเพิ่มเติมก็สามารถแนะนำกันเข้ามาได้ครับ

Comments are closed.