Share this

ข้อควรปฏิบัติสำหรับการทำ Server Hardening

Issues
April
Programmer
Categories:
#Back-end Tools
Inspired by: Khemanorak, Natchaya
Views

Server Hardening คืออะไร ?

 

โดยปกติคำว่า “Hardening” มีความหมายโดยทั่วไป ถึงการทำให้ Surface มีความแข็งแรงขึ้น อีกทั้งยังทำให้มีความคงทนมากขึ้นต่อการถูกจู่โจม
 
Server Hardening ก็มีความหมายที่ใกล้เคียงกัน นั่นคือกระบวนการการเพิ่มความแข็งแกร่งให้แก่ระบบ (Server) เพื่อเพิ่มความปลอดภัย ภูมิคุ้มกัน และความคงทนให้กับระบบ อีกทั้งยังช่วยป้องกันและรับมือการโจมตีการบุคคลภายนอกอีกด้วย
 
หากกล่าวสั้นๆ การประยุกต์ใช้งาน Server Hardening นั้นจะลด พื้นที่สำหรับการโจมตี (Attack Surface) สำหรับระบบของเรา
 

ทำไม Server Hardening ถึงมีความสำคัญ

 

ก่อนอื่นเลย เราขอพูดถึง Attack Surface ก่อน Attack Surface หรือพื้นที่โจมตี คือจุดต่างๆของระบบที่ บุคคลภายนอกสามารเข้ามาโจมตี โดยอาจจะเข้าถึงข้อมูลที่เป็นความลับ (Confidential) หรือทำลายความสมบูรณ์ (Integrity) และการทำงานของระบบในภาพรวม (Functionality)
 
แน่นอนว่าการถูกโจมตี 1 ครั้งย่อมส่งผลกระทบต่อระบบของเราในวงกว้าง ทั้งในเรื่องการรั่วไหลของข้อมูล ซึ่งอาจจะเป็นข้อมูลส่วนตัวที่มีควาสำคัญ ทั้งในเรื่องการทำงานของระบบ ซึ่งอาจเกิดความเสียหายต่อธุรกิจเป็นอย่างมาก นอกจากนี้สำหรับบริษัผู้พัฒนาระบบ อาจทำให้ลูกค้าเสียความเชื่อมั่นต่อบริษัทอย่างแน่นอน
 
ยิ่งในโลกปัจจุบันที่การใช้งาน อีกทั้งการวางระบบ ล้วนใช้งาน Internet ทั้งสิ้น ทำให้มีความเป็นไปได้สูงขึ้นที่ระบบจะถูกโจมตีโดยผู้ไม่ประสงค์ดี ดังนั้น การที่ระบบขาดเครื่องมือในการป้องกันตัวเองจากการโจมตีนี้ ถือเป็นความเสี่ยงอย่างมาก
 
การประยุกต์ใช้งาน Server Hardening กับทุกระบบในองค์กรจึงมีความสำคัญอย่างยิ่ง เนื่องจากมันจะช่วยในการป้องกันการโจมตีจากบุคคลภายนอก หรือทำให้ระบบเราคงทนและสามารถรับมือกับการโจมตีทุกรูปแบบ ซึ่งจะช่วยสร้างเสริมทั้งความปลอดภัย และความมั่นใจสำหรับผู้ใช้งานทุกคนได้นั่นเอง
 
จึงอาจพูดได้ว่า Server Hardening ไม่ช่ทางเลือก แต่เป็นสิ่งที่ “ควรทำ” และ “ต้องทำ” เพื่อความปลอดภัยของข้อมูลและการใช้งาน
 

ข้อควรปฏิบัติเมื่อทำ Server Hardening

 

สำหรับบทความนี้ เราจะไม่เน้นพูดขั้นตอน Step-by-Step สำหรับการทำ Server Hardening แต่เราจะนำเสนอ Tip & Trick ที่จะช่วยให้คุณทำ Server Hardening ได้อย่างมีประสิทธิภาพ
 
สำหรับการทำ SSH
      • ไม่ควรมีการ Login Remote ผ่าน Root โดยควรที่จะเป็นการ Login จาก User ธรรมดาก่อน จากนั้นจะ Log In ผ่าน Root User
      • ในกรณีที่ไม่มีการทำงาน (Action) ภายในระยะเวลา 5 นาที ควรมีการตั้งค่า Disconnect idle connection
      • ควรที่จะ Disable การทำ X11 Forwarding
      • ไม่ควรใช้ Default Port เช่น Port 22 เนื่องจากจะแสกนหาเจอได้ง่าย
      • ควรมีการตั้งค่าว่าผู้ใช้งานท่านไหนสามารถ SSH เข้าสู่ระบบได้
      • ไม่ควรใช้ Username และ Password ในการ SSH เข้าสู่ระบบ เนื่องจากมีความปลอดภัยไม่มากพอ แต่ควรจะใช้​ Key Pair ที่มีทั้งความซับซ้อน มีรหัสที่ยาว และปลอดภัยกว่า
 
ผู้ใช้งานและกลุ่ม (User and Group)
      • อย่าใช้ Root User ในการ Run Application เนื่องจากการใช้ Root User ในการดำเนินการจะไม่มีการเก็บข้อมูลในการทำ Operational Log และทำให้ตรวจสอบได้ยาก
      • ควรมีการสร้าง Group ใหม่ โดยควร ควรมีการตั้ง Sudo Permission
      • หากใช้งานร่วมกับ CI/CD เพื่อการ Deployment โดยหากมีการใช้ Password ในการดำเนินการจะไม่ปลอดภัย เนื่องจากจะต้องมีการเก็บ Password ไว้เป็น text file ดังนั้น เราจึงควรที่จะให้กลุ่ม execute command โดยใช้ Root Permission และไม่จำเป็นต้องใส่ Password
 
Strong Password Policy
      • ควรเปลี่ยน Password ทุกๆ 90 วัน
      • ควรตั้งค่า Password ให้ยาวที่สุดที่สามารถทำได้
      • ควรใช้ทั้ง Lower Case, Upper Case และอักขระพิเศษ (Special Character) ในตั้งค่า Password
      • ตั้งค่าไม่ให้ Password ซ้ำ จากอันเดิมที่เคยตั้งไปก่อนหน้า เพื่อเสริมความปลอดภัยอีก 1 ระดับ
 
Encrypt the Data
      • สำหรับการจัดเก็บข้อมูล หากเป็นข้อมูลที่มีความสำคัญและเป็นความลับควรจะ Encrypt ข้อมูล เพื่อความปลอดภัย
 
การตั้งค่า Server Log
      • ทุกๆ Server ที่มีควรตั้งค่า Log ไปไว้ในที่เดียว ไม่ควรแยกกัน เนื่องจากหากต้องการจะตรวจสอบและข้อมูลอยู่คนละที่กันจะทำให้ตรวจสอบได้ยาก
 
Time Sync
      • Server ทุกตัวควรมีการตั้งค่าเวลาที่ Timezone ตรงกัน เนื่องจากหากต้องการตรวจสอบข้อมูลจะสามารถตรวจสอบข้อมูลจากเวลาเดียวกัน ซึ่งจะทำให้สามารถดำเนินการได้ง่ายกว่านั่นเอง
 
และนี่คือหลักการที่ควรปฏิบัติ 6 ประการเมื่อคุณจะใช้งาน Server Hardening จริงๆแล้วยังมีการข้อปฏิบัติอีกหลายอย่างที่คุณสามารถปรับใช้ เพื่อสร้างเสริมความปลอดภัยให้กับระบบมากขึ้น
 
ขอบคุณที่มาข้อมูลจาก
You may also like
Low Code Framework ทำงานอย่างไร?
Low Code Framework ทำงานอย่างไร?
มิ.ย. 06, 2024อ่านเมื่อ 1 วันที่แล้ว
Back-end Tools
Front-end Tools
Automated Process
วิธีสร้าง Chatbot ในแบบฉบับง่ายๆ ไม่ใช่ คนTech ก็ทำได้
วิธีสร้าง Chatbot ในแบบฉบับง่ายๆ ไม่ใช่ คนTech ก็ทำได้
มิ.ย. 06, 2024อ่านเมื่อ 2 ชั่วโมงที่แล้ว
Back-end Tools
Front-end Tools
Digital Transformation
HR Bot สร้างขึ้นมาได้อย่างไร
HR Bot สร้างขึ้นมาได้อย่างไร
มิ.ย. 06, 2024อ่านเมื่อ 3 วันที่แล้ว
Bot
Automated Process
Front-end Tools
5 ปัจจัยหลัก ที่ใช้ประเมินการทำงาน Developer
5 ปัจจัยหลัก ที่ใช้ประเมินการทำงาน Developer
มิ.ย. 06, 2024อ่านเมื่อ 4 ชั่วโมงที่แล้ว
Front-end Tools
Back-end Tools

SUBSCRIBE TO OUR

NEWS
LETTER .

Code , Consult , Communicate

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

ในบางกรณีเราอาจจะติดต่อไปหาคุณเพื่อการนำเสนอผลิตภัณฑ์, บริการ หรือกิจกรรมที่ตรงกับความต้องการของคุณ ถ้าหากคุณต้องการให้เราติดต่อไปเพื่อวัตถุประสงค์ดังกล่าว โปรดเลือกให้ความยินยอมกับเราในกรณีต่อไปนี้




* คุณสามารถถอนความยินยอมของคุณได้ทุกเมื่อ สำหรับช่องทางการติดต่อเพื่อขอถอนความยินยอม และรายละเอียดการคุ้มครองข้อมูล ส่วนบุคคลของคุณ โปรดอ่านได้ที่ ประกาศความเป็นส่วนตัวของเรา