linux training in Thailand
| Home | Articles | Download | Free Linux Tips | Resources | Training | Web Link | Linux Training English|
| Courses | Schedule | Price & Promotion | Map | Customer Ref. | Instructors | Certification | FAQ | Registration Form |
สถาบันฯ ขอแจ้งปิดทำการระหว่างวันที่ 27 -31 กรกฏาคม 2558 และเปิดทำการปกติวันที่ 3 สิงหาคม 2558
We are on vacations 5 days in July 27-31, 2015 Please contract Line ID : nok_fly or e-mail : info@itdestination.com
ITDestination จะปิดปรับปรุงเว็บไซต์ ตั้งแต่วันที่ 7 - 9 มิถุนายน 2556
อาจจะทำให้ใช้งานไม่ได้ในบริการ Webboard Freetips และ E-Learning จึงขออภัยในความไม่สะดวกมา ณ ที่นี้
สถาบันฯ ขอแจ้งปิดทำการวันที่ 22-28 กุมภาพันธ์ 2560 และจะเปิดทำการปกติในวันที่ 1 มีนาคม 2560
กรณีติดต่อส่งข้อความมาที่ Facebook: LinuxITDestination หรือ e-mail: info@itdestination.com ซึ่งจะติดต่อกลับประมาณ 17.00 น.
ผู้ลงทะเบียนอบรมสามารถทำข้อสอบ online ในช่วงที่มาอบรมเพื่อทบทวนความรู้ ทำได้ไม่จำกัดจำนวนครั้ง มีข้อเฉลยที่ถูกต้องแนะนำ
สอบถามรายละเอียดโทร 089 890-5494 >>> อ่านรายละเอียด... คลิ๊ก

Ready 5 Concept เสริมเขี้ยวเล็บให้ลีนุกซ์เซิร์ฟเวอร์

โดย ธีรภัทร มนตรีศาสตร์,RHCE,LCP,LPIC-2

"ทันทีที่รู้ตัวว่าจะต้องนำลีนุกซ์เซิร์ฟเวอร์ติดตั้งอย่างเปิดเผยในเครือข่ายสาธารณะที่แวดล้อมไปด้วยเหล่าแครกเกอร์ผู้หิวกระหายที่จ้องทำลายระบบ การนำเพนกวิ้นที่บอบบางออกเผชิญโลกกว้างครั้งนี้ช่างน่าหวาดวิตกเหลือเกินสำหรับ ลีนุกซ์แอดมินมือใหม่"
เรื่องราวของการบริหารจัดการระบบเครือข่ายโดยคำนึงถึงความปลอดภัยเป็นสิ่งที่ได้รับความสนใจเป็นอันดับต้นๆ ไม่แพ้เรื่องของเทคโนโลยีหรือการสร้างสรรค์บริการต่างๆให้แก่ผู้ใช้งาน เนื่องด้วยในโลกของอินเตอร์เน็ตนั้นเปรียบเสมือนดินแดนอันตรายที่มีผู้ก่อการร้ายที่พร้อมจะรบกวนการทำงานของเซิร์ฟเวอร์ของเราอยู่ตลอดเวลา อาจจะด้วยความคึก คนองอยากลองวิชา หรือประสงค์ร้ายต่อองค์กรของเราโดยตรงก็ตามที ไม่ว่าจะด้วยสาเหตุใดก็ตามหากผู้ดูแลระบบจัดตั้งเซิร์ฟเวอร์ที่มีระบบการรักษาความปลอดภัยในระดับต่ำหรือมีนโยบายที่หละหลวมแม้แต่เพียงเล็กน้อย ระบบงานของเราจะกลายเป็นสนามเด็กเล่น ( Play ground ) ของคนเหล่านี้ไปทันที สิ่งที่ผู้เขียนได้กล่าวมานี้มิใช่เรื่องพูดเล่นสนุกหรือฟังมาจากคนวิตกจริตแล้วมาเล่าต่อ แต่เป็นเรื่องที่พร้อมให้สามารถพิสูจน์ได้เพียงแค่เรานำลีนุกซ์เซิร์ฟเวอร์เชื่อมต่อเข้าสู่เครือข่ายอินเตอร์เน็ตด้วยหมายเลขไอพีถาวร เพียงไม่เกิน 24 ชั่วโมงเท่านั้นภายในไฟล์บันทึกเหตุการณ์หรือ log file จะเต็มไปด้วยข้อความ Illegal user ,Failure user หรือข้อความอื่นๆ ที่แสดงให้เห็นว่า เหล่านักเจาะระบบกำลังคุ้ยแคะเซิร์ฟเวอร์ของเราอย่างสนุกสนาน ด้วยการพยายามเดาชื่อและรหัสผ่านของยูสเซอร์ในเซิร์ฟเวอร์ของเรา โดยอาจเริ่มจากชื่อบัญชีพื้นฐานทั้งหลาย เช่น root guest test user admin web web-data เป็นต้น ลองนับอัตราการลองผิดลองถูกของเหล่านักเจาะเหล่านี้ได้มากกว่าสองพันกว่าครั้งในเวลาเพียงคืนเดียวเท่านั้น ส่วนแหล่งที่มาของพวกนี้ก็ไม่แน่นอนนัก แต่เท่าที่ตรวจพบร่องรอยก็มักจะมาจากแถบเอเชียเรานี่เอง เช่น ไต้หวัน เกาหลี และญี่ปุ่น รองลงไปก็แถบสหรัฐอเมริกา และสุดท้ายจากในประเทศไทยของเราเองอีกเล็กน้อย ซึ่งกรณีเช่นนี้อาจจะแก้ไขปัญหาโดยสร้างเชลล์สคริปต์ขนาดเล็กๆ ขึ้นเพื่อดักจับเหตุการณ์ไม่พึงประสงค์เหล่านี้เพื่อวิเคราะห์แยกเอาหมายเลขไอพีหรือโฮสต์ออกมาจาก log file แล้วนำไปปิดกั้นด้วย TCP Wrapper และ Packet Filter เพื่อป้องกันไม่ให้คนว่างงานพวกนี้เข้ามาตอแยอีกต่อไป


รูปที่ 1 หน้าตาของ log file ที่บันทึกเหตุการณ์ของพวกตัวแสบไว้ได้


นอกจากประสบการณ์ที่ผู้เขียนได้ลองเชิงกับผู้ไม่ประสงค์ดีดังที่ได้กล่าวมาแล้วนั้น ยังมีเรื่องราวของความเสียหายจาก "การเผชิญหน้า" ในขณะที่ระบบลีนุกซ์เซิร์ฟเวอร์ของเรา "ยังไม่พร้อม" อีกหลายต่อหลายครั้งที่บอกเล่าผ่านผู้เข้ารับการอบรมนำมาอภิปรายกันในระหว่างการอบรมที่ผู้เขียนเป็นวิทยากร บ้างก็บอกว่า "ยังติดตั้งไม่เสร็จดีเลยก็โดนซะแล้ว" บ้างก็บอกว่า "ยังไม่ครบวันหนึ่งก็ล่มซะแล้ว" ถึงตอนนี้คงทำให้ท่านผู้อ่านมองเห็นอันตรายของ "ความไม่พร้อม" บ้างแล้วใช่มั๊ยครับ ทำอย่างไรถึงจะ "พร้อม" ? การนำลีนุกซ์เซิร์ฟเวอร์ที่เพิ่งติดตั้งเสร็จใหม่ๆ ยังไม่ได้ปรับแต่งใดๆ ทั้งสิ้นเชื่อมต่อเข้าสู่ระบบเครือข่ายสาธารณะมีสภาพไม่แตกต่างอะไรจากการส่งเด็กน้อยไปเดินกลางสนามรบ คำถามที่เกิดขึ้นคือ ทำอย่างไรจึงจะเรียกว่า "พร้อม" ที่จะปล่อยให้ลีนุกซ์เซิร์ฟเวอร์เผชิญโลกกว้างตามลำพัง คำตอบของคำถามนี้อาจมีได้ต่างๆ นาๆ ขึ้นอยู่กับประสบการณ์ของท่านผู้ตอบคำถาม บ้างก็เป็นแนวทางที่เน้นปฏิบัติ เช่น ทำไฟร์วอลล์ก่อนเป็นอันดับแรก หรือบางท่านก็บรรยายอย่างรอบด้านจนคนฟังมึนเริ่มต้นไม่ถูกอยู่เช่นเดิม ในที่นี้ผู้เขียนจะแนะแนวทางให้เป็นหลักการที่เรียกว่า Ready 5 Concept หรือ "แนวทาง 5 ประการสู่ความพร้อมลีนุกซ์เซิร์ฟเวอร์" อันประกอบด้วย
  1. พร้อมด้วยโครงสร้างทางระบบเครือข่าย ( Network Infrastructure Level )
  2. พร้อมด้วยคุณสมบัติภายในระบบปฏิบัติการ ( System Level )
  3. พร้อมด้วยสภาพแวดล้อมและส่วนประกอบภายในระบบปฏิบัติการ ( Components Level )
  4. พร้อมด้วยคุณสมบัติของซอฟต์แวร์ประยุกต์ ( Server Applications Level )
  5. พร้อมด้วยเครื่องมือบริหารจัดการ วิเคราะห์และรายงานผล ( Network Security Tools )
ความพร้อมทั้งหลายเหล่านี้เป็นสิ่งที่ผู้ดูแลระบบเซิร์ฟเวอร์และเครือข่าย จะต้องให้ความสำคัญและเตรียมการอย่างละเอียดรอบคอบ โดยภาพรวมของ Ready 5 Concept แสดงดังรูปที่ 2


รูปที่ 2 ส่วนประกอบของระบบตามแนวคิด Ready 5 Concept


ความพร้อมที่ 1 โครงสร้างระบบเครือข่าย โครงสร้างของระบบเครือข่ายที่จัดตั้งลีนุกซ์เซิร์ฟเวอร์ ( รวมทั้งเซิร์ฟเวอร์อื่นๆ และอุปกรณ์เครือข่าย ) สามารถเทียบเคียงได้กับตัวแบบอ้างอิง OSI ในระดับที่หนึ่งหรือ Physical Layer นั่นเอง ซึ่งถือได้ว่าเป็นส่วนสำคัญที่ผู้ดูแลระบบในองค์กรจะต้องมีการวางแผนและออกแบบอย่างเป็นระบบ เนื่องจากเป็นงานระดับกายภาพจึงทำให้การปรับเปลี่ยนในภายหลังเป็นเรื่องยุ่งยากหรืออาจจะต้องรื้ออุปกรณ์และสายสัญญาณกันวุ่นวายทีเดียว หากเปรียบเทียบเครือข่ายขององค์กรเป็นบ้านซักหลังหนึ่ง โครงสร้างระบบเครือข่ายนี้จะเป็นการจัดวางรั้ว กำแพง ช่องหน้าต่าง ประตู ไปจนถึงทางเดินรอบๆ บ้าน หากมีการจัดสรรไม่เหมาะสมสอดคล้องกับการใช้งานก็จะทำให้เกิดปัญหาขึ้นได้ ตัวอย่างเช่น นำอุปกรณ์ Remote Access ไปไว้ในเครือข่ายภายใน หรือไม่ได้เตรียมการในเรื่อง Perimeter Network ( DMZ ) ไว้เสียก่อน จะทำให้การควบคุมนโยบายความปลอดภัยกระทำได้ยากขึ้น การจัดโครงสร้างเครือข่ายแบบ DMZ นี้เป็นสิ่งที่ควรเตรียมการเป็นอย่างยิ่งทั้งนี้เพื่อมิให้ลีนุกซ์เซิร์ฟเวอร์ของเรา "สัมผัส" โดยตรงกับเครือข่ายสาธารณะนั่นเอง บทบาทของลีนุกซ์เซิร์ฟเวอร์ในระดับโครงสร้างเครือข่ายนี้ คงหนีไม่พ้นการนำลีนุกซ์มาใช้เป็น Router และ Firewall รวมไปถึงอาจทำหน้าที่เป็น Proxy Server ได้อีกด้วย ซึ่งสามารถสรุปบทบาทหน้าที่ของลีนุกซ์ในระดับนี้ได้ดังนี้
  • การทำหน้าที่เป็น Router ลีนุกซ์มีความสามารถทั้งในด้าน Static Route และ Dynamic Routing Protocol รวมทั้งคุณสมบัติด้าน NAT ( Network Address Translation ) ซึ่งนิยมใช้ในการซ่อนเซิร์ฟเวอร์ไว้เบื้องหลัง Router เพื่อความปลอดภัยมากกว่าการเชื่อมต่อกับเครือข่ายสาธารณะโดยตรง
  • หน้าที่การเป็น Firewall เราสามารถนำลีนุกซ์มาจัดสร้างเครือข่าย DMZ ได้ด้วยซอฟต์แวร์ระดับ Kernel Modules เช่น IP Chains หรือ IPTABLES ซึ่งมีคุณสมบัติด้าน Connection Tracking หรือ Stateful Inspection นอกจากนี้ยังสามารถใช้ประโยชน์จากคุณสมบัติด้าน QoS เพื่อการบริหารปริมาณการใช้แบนด์วิธได้อีกด้วย
  • หน้าที่เป็น Proxy Server เป็นการประยุกต์ใช้งานลีนุกซ์ได้อย่างคุ้มค่าอย่างยิ่งอีกด้านหนึ่ง ซึ่งสามารถช่วยจัดสรรแบนด์วิธในระดับแอปพลิเคชั่น ควบคุมการใช้งานด้วย ACL ( Access Control List ) ส่วนการใช้งานเป็น Caching Server เพื่อเพิ่มความเร็วในการเข้าถึงเว็บไซต์ต่างๆ นั้นอาจจะเลือกใช้หรือไม่ก็ได้ตามความต้องการ สิ่งหนึ่งที่ผู้ดูแลระบบจะต้องระลึกอยู่เสมอก็คือ ระบบ Firewall นั้น ไม่ใช่คำตอบสุดท้าย ของการรักษาความปลอดภัยในระดับเครือข่ายดังเช่นที่หลายๆ ท่านเข้าใจกัน ทั้งนี้เนื่องจากระบบ Firewall นั้นเป็นเพียงทางผ่านการสื่อสารที่มีการกลั่นกรองแหล่งที่อยู่ของโฮสต์ต้นทางและปลายทาง ทิศทางการสื่อสาร ความถูกต้องของกระบวนการสื่อสาร และชนิดของบริการเท่านั้น


  • รูปที่ 3 โครงสร้างระบบเครือข่ายแบบ DMZ


    ความพร้อมที่ 2 ระดับระบบปฏิบัติการ ระบบปฏิบัติการลีนุกซ์ มีส่วนประกอบหลักคือ เคอร์เนล รองลงไปคือเคอร์เนลโมดูล ทั้งสองส่วนนี้ถือว่าเป็นหัวใจของการทำงานของระบบปฏิบัติการซึ่ง การเตรียมความพร้อมในระดับนี้ ผู้ดูแลระบบจะต้องเลือกใช้เคอร์เนลที่ได้รับการปรับปรุงในด้านความปลอดภัยให้ทันสมัยมากที่สุดเท่าที่จะเป็นไปได้ มีการอัพเกรดหรือ patch อย่างสม่ำเสมอ ช่องโหว่ภายในเคอร์เนลประเภท Stack Overflow เป็นจุดบกพร่องที่มีการรายงานอยู่เสมอๆ นอกจากนี้ตัวแปรหลายๆ ตัวภายในเคอร์เนลสามารถปรับแต่งเพื่อประโยชน์ด้านความปลอดภัยได้จึงควรมีการปรับแต่งบ้าง มีวิธีการบางส่วนที่จะช่วยสนับสนุนให้เกิดความปลอดภัยได้มากขึ้นในระดับระบบปฏิบัติการนี้ ได้แก่
  • การอัพเดตเคอร์เนลรุ่นใหม่ ซึ่งหลายๆ ดิสทริบิวชั่นจะมีขั้นตอนที่สะดวกต่อการอัพเดตนี้เตรียมไว้แล้ว
  • การปรับแต่งค่าตัวแปรภายในเคอร์เนล บางส่วนจะสามารถกำหนดค่าได้โดยตรง แต่บางส่วนจำเป็นต้องสร้างเคอร์เนลขึ้นใหม่ หรือการคอมไพล์เคอร์เนลใหม่นั่นเอง
  • ในปัจจุบันมีลีนุกซ์ดิสทริบิวชั่นหลายค่ายที่เน้นคุณสมบัติด้านความปลอดภัยโดยเฉพาะ หรือที่เรียกกันว่า Hardened Distro ให้เลือกใช้งานกัน ซึ่งผู้ดูแลระบบสามารถนำมาใช้ได้ทันทีโดยไม่จำเป็นต้องปรับแต่งอะไรอีกแล้ว เช่น Trustix Linux ,OpenNA Linux เป็นต้น
  • ความพร้อมที่ 3 ระดับส่วนประกอบของระบบปฏิบัติการ ลำพังตัวลีนุกซ์เซิร์ฟเวอร์จะมีเพียงเคอร์เนลและเคอร์เนลโมดูลคงไม่สามารถเป็นระบบปฏิบัติการขึ้นได้ ส่วนประกอบที่รายรอบอยู่จึงถือว่ามีส่วนเกี่ยวข้องกับระบบโดยรวม การเตรียมการในเชิงความปลอดภัยนี้ก็เช่นเดียวกัน โดยเริ่มพิจารณาส่วนประกอบพื้นฐานของระบบ ซึ่งสามารถจำแนกออกได้ดังนี้
  • ระบบจัดเก็บไฟล์ข้อมูล หรือ File System ถือว่ามีบทบาทสูงมากเพราะเป้าหมายสุดท้ายหรือจุดจบของตัวเซิร์ฟเวอร์ของเราจะมาถึงทันทีที่ผู้บุกรุกสามารถเข้าถึงระบบไฟล์ได้ ( จะบางส่วนก็ยอมไม่ได้ ) ซึ่งเป็นไปได้ทั้งทางตรง และทางอ้อม ทางตรงก็คือ ผู้บุกรุกสามารถเข้าถึงไฟล์ในทุกๆ ไดเร็คทอรี่ได้อย่างอิสระเรียกว่าเข้ายึดเซิร์ฟเวอร์ของเราได้โดยสมบูรณ์นั่นเอง ส่วนทางอ้อมหมายถึง ความสามารถที่จะเข้าไปเปลี่ยนแปลงข้อมูลภายในบางส่วนได้ เช่น สามารถเพิ่มชื่อยูสเซอร์ใหม่และกำหนดรหัสผ่านได้ นั่นหมายถึงสามารถเขียนข้อมูลเพิ่มลงไปได้แล้ว การป้องกันจะต้องกำหนดระบบจัดเก็บไฟล์ให้เป็นชนิดอ่านได้อย่างเดียว กำหนดการเข้าถึงไฟล์ด้วย ACL บังคับคุณสมบัติของระบบไฟล์ให้เป็น immutable และนำระบบจัดเก็บไฟล์ชนิดเข้ารหัสมาใช้งาน ( Encryption File System )
  • ระบบสัญญาณในระดับโปรเซส ( Signal ) รวมทั้งการสื่อสารผ่านซอกเก็ต ถ้าส่วนประกอบของระบบปฏิบัติการยินยอมให้ผู้บุกรุกสามารถสร้างสัญญาณ ส่งสัญญาณ หรือดัดแปลงสัญญาณต่างๆ ได้แล้ว ย่อมเปิดโอกาสให้สามารถควบคุมโปรเซสใดๆ ได้ตามต้องการ อาจจะเป็นการสั่งให้โปรเซสทำงานบางอย่าง ยุติการทำงาน หากสัญญาณนั้นมีผลถึงเคอร์เนลได้จะสามารถกระทำการได้อีกมากมายสุดจินตนาการทีเดียว การป้องกันในส่วนนี้สำหรับเคอร์เนล 2.4 จะยังไม่สมบูรณ์นัก คงต้องอัพเกรดไปสู่เคอร์เนล 2.6 ซึ่งมีคุณสมบัติที่เข้ามาสนับสนุนการจำกัดสิทธิในระดับ Signal ได้และถือว่าเป็นความเปลี่ยนแปลงสำคัญของลีนุกซ์
  • การจำกัดสิทธิของผู้ใช้ การบริหารรหัสผ่าน และการพิสูจน์ตัวตนของผู้ใช้งาน รวมไปถึงการจำกัดทรัพยากรของผู้ใช้ ถือว่าเป็นเรื่องพื้นฐานที่จำเป็นต้องมีการเตรียมการให้ดี เนื่องจากการได้มาซึ่งชื่อล๊อกอินของผู้ใช้ในระบบเป็นสิ่งที่ไม่ยากเกินไปนัก หากระบบยินยอมให้ใช้รหัสผ่านที่ง่ายต่อการเดา การพิสูจน์สิทธิ์และตัวตน ( User Authentication ) เพื่อเข้าสู่ระบบจะไม่มีความหมายอีกต่อไป ระบบ PAM ( Pluggable Authentication Modules ) ของลีนุกซ์มีความหลากหลายและยืดหยุ่นมากเพียงพอต่อการควบคุมและป้องกันปัญหาดังกล่าว ได้แก่ pam_crack ,pam_limit หรือ pam_access สำหรับระบบที่มีการล๊อกอินหลายช่องทาง และบางช่องทางมิได้ผ่านการควบคุมด้วย PAM หากหลีกเลี่ยงไม่ได้จริงๆ เช่น การล๊อกอินเข้าสู่ระบบฐานข้อมูล MySQL หรือ PostgreSQL จะต้องกำหนดรหัสผ่านให้เดายากที่สุด มอบสิทธิ์ให้แคบที่สุด รวมไปถึงอัพเดตตัวแอปพลิเคชั่นให้ทันสมัยและปลอดภัยที่สุด ดังที่จะกล่าวถึงในระดับแอปพลิเคชั่นต่อไป
  • ความพร้อมที่ 4 ระดับซอฟต์แวร์แอปพลิเคชั่น ความสำคัญในเชิงความปลอดภัยในระดับเครือข่ายของซอฟต์แวร์แอปพลิเคชั่นทั้งหลายที่รันอยู่ในลีนุกซ์เซิร์ฟเวอร์ของเรา ก็คือ ซอฟต์แวร์เหล่านี้คือช่องทางเข้าสู่ระบบอย่างเป็นทางการ ที่เหล่าผู้บุกรุกทั้งหลายจะเริ่มประเมินความเป็นไปได้ในการเจาะข้อมูลหรือสร้างความปั่นป่วนแก่เซิร์ฟเวอร์ของเราเป็นอันดับแรก ดังนั้นผู้ดูแลระบบจึงไม่ควรเปิดบริการที่มีความเสี่ยงสูงโดยเด็ดขาด หากจำเป็นต้องใช้จริงๆ จะต้องพยายามค้นหาวิธีการที่ลดความเสี่งลงให้มากที่สุด ( Minimizing the risks of security ) หรือหาวิธีการอื่นๆ ที่ทำงานทดแทนได้มาใช้งาน ในระดับนี้จำแนกการเตรียมความพร้อมได้ดังนี้
  • สร้างความแกร่งให้แก่ตัวแอปพลิเคชั่นให้มากที่สุด ( Hardening ) ซึ่งไม่พ้นเรื่องของการติดตามอัพเดตซอฟต์แวร์รุ่นใหม่ล่าสุดทันทีที่รับทราบข่าวปัญหาด้านความปลอดภัยของตัวซอฟต์แวร์เหล่านั้น และอย่าลืมว่าซอฟต์แวร์ที่เป็นส่วนประกอบของแอปพลิเคชั่นหรือ Middle-ware บางตัวก็อาจจะมีช่องโหว่ได้เช่นกัน เช่น PHP ซึ่งเป็นโมดูลหนึ่งที่ทำงานร่วมกับ Apache หรืออาจจะเป็นตัวแอปพลิเคชั่นที่ทำงานถัดออกไปจากตัวเซิร์ฟเวอร์ เช่น PHPnuke ,PostNuke เป็นต้น ช่องโหว่ในเซิร์ฟเวอร์ของเราสามารถตรวจสอบและประเมินค่าได้จากเครื่องมือวิเคราะห์ในส่วนที่จะกล่าวถึงในลำดับต่อไป
  • เลือกใช้การสื่อสารที่มีการตรวจสอบ Certificate หรือมีการเข้ารหัสระหว่างการสื่อสาร เช่น เลือกใช้ SFTP แทนที่จะใช้ FTP ธรรมดา ใช้โปรโตคอล SSL กับโปรโตคอลของแอปพลิเคชั่นทั้งหลายไม่ว่าจะเป็น IMAP ,POP หรือ HTTP หากจำเป็นต้องจัดให้มีการสื่อสารระหว่างเครือข่ายภายในกับภายนอกแล้ว ขอให้พิจารณานำระบบ VPN ( Virtual Private Network ) เข้ามาใช้จะปลอดภัยมากยิ่งขึ้น
  • แอปพลิเคชั่นทุกๆ ตัวที่ทำงานร่วมกับระบบเครือข่าย จะมีคุณสมบัติในการจำกัดการเข้าถึงในระดับโฮสต์หรือเครือข่าย ( Host Access Control ) เสมอ ดังนั้นจึงควรควบคุมการเข้าใช้งานให้ยินยอมอนุญาติให้แคบที่สุด ได้แก่ การคอนฟิกในส่วนของ TCP Wrappers การจำกัดด้วยไดเร็คทีฟ Allow/Deny ของ Apache การใช้ประโยชน์จากคุณสมบัติของ inetd / Xinetd สำหรับบริการแบบ On-Demand รวมไปถึงการใช้ Packet Filtering ช่วยกรองแพคเกตของโฮสต์ลีนุกซ์เซิร์ฟเวอร์เป็นการเฉพาะก็เป็นอีกสิ่งหนึ่งที่ช่วยเสริมให้เกิดความปลอดภัยได้มากขึ้นโดยเฉพาะในส่วนที่ Host Access Control ไม่สามารถทำได้ เช่น การกรองแพคเก็ตข้อมูลที่แปลกปลอม ( Invalid packets หรือ Spoof Packet ) เป็นต้น


  • รูปที่ 4 รายงานผลวิเคราะห์ที่ได้จากโปรแกรม Snort


    ความพร้อมที่ 5 เครื่องมือสนับสนุนด้านความปลอดภัย ความพร้อมที่ 5 นี้เป็นการนำซอฟต์แวร์เครื่องมือต่างๆ มาใช้เพื่อประโยชน์หลายๆ วัตถุประสงค์ด้วยกัน เป็นที่น่าสนใจที่เครื่องมือที่ทรงประสิทธิภาพเหล่านี้มักจะเป็นซอฟต์แวร์โอเพ่นซอร์สเป็นส่วนมาก หากเราแบ่งเครื่องมือเหล่านั้นออกตามวัตถุประสงค์การใช้งานจะมี 3 ประเภทดังนี้
  • เครื่องมือเพื่อการตรวจสอบ วิเคราะห์ ประเมินและรายงานด้านความปลอดภัย เครื่องมือประเภทนี้มีบทบาทใช้งานตั้งแต่เริ่มติดตั้งระบบสำเร็จใหม่ๆ ไปจนถึงเป็นยามรักษาการณ์ขณะดำเนินงานทีเดียว ได้แก่ โปรแกรม Nessus ซึ่งใช้ตรวจสอบค้นหาช่องโหว่ข้อบกพร่องของเซิร์ฟเวอร์ ( Security Audit ) ซึ่งจะรายงานให้ทราบใด้หลายรูปแบบทั้งยังสามารถให้ข้อแนะนำในการปรับปรุงแก้ไขปัญหาเหล่านั้นอีกด้วย
  • เครื่องมือเฝ้าระวัง แจ้งเตือน วิเคราะห์ และรายงานการบุกรุก เครื่องมือประเภทนี้จะอาศัยคุณสมบัติสำคัญในการดักจับแพคเก็ตข้อมูลจากระบบเครือข่าย ( Packet Sniffer ) เพื่อนำมาวิเคราะห์และแจ้งเตือน ( Alert ) ในช่องทางสื่อสารต่างๆ หลายรูปแบบ ได้แก่ โปรแกรม Snort ซึ่งเป็นระบบ NIDS ( Intrusion Detection System ) หรือตรวจจับผู้บุกรุกเครือข่ายนั่นเอง นอกจากจะวิเคราะห์พฤติกรรมจากแพคเก็ตข้อมูลจากเครือข่ายได้แล้ว ยังสามารถบันทึกข้อมูล Alert จัดเก็บไว้ในระบบฐานข้อมูลเพื่อนำมาวิเคราะห์และรายงานได้ในรูปแบบที่ต้องการ
  • เครื่องมือด้านความปลอดภัยภายในระบบ เครื่องมือกลุ่มนี้จะทำงานอยุ่ในลีนุกซ์เซิร์ฟเวอร์ นั่นหมายความว่า จะมีการใช้งานระหว่างการใช้งานเซิร์ฟเวอร์ หรือสนับสนุนการทำงานของซอฟต์แวร์แอปพลิเคชั่นต่างๆ นั่นเอง สามารถแบ่งออกได้ 3 กลุ่มย่อย คือ
    1. เครื่องมือเพื่อการบริหารจัดการภายในเซิร์ฟเวอร์ เป็นเครื่องมือที่ตัวผู้ดูแลระบบใช้ประโยชน์ทั่วไป ได้แก่ โปรแกรม SUDO ซึ่งช่วยเพิ่มสิทธิให้แก่ผู้ใช้อื่นๆ ให้สามารถทำงานได้เทียบเท่ากับ root มีประโยชน์มากในการจำกัดสิทธิของ root ซึ่งช่วยลดความเสียหายจากความผิดพลาดของตัวบุคคล ( Human Errors )
    2. เครื่องมือเพื่อการสรุปสถานะและรายงานข้อมูลที่เป็นประโยชน์ต่อการบริหารเซิร์ฟเวอร์ ได้แก่ โปรแกรม Logcheck ,Swatch ,LogSentry ,HostSentry เป็นต้น
    3. เครื่องมือประเภทค้นหาข้อบกพร่อง มีทั้งชนิดที่ทำงานร่วมกับระบบโดยอัตโนมัติ และผู้ดูแลระบบสั่งงานเอง ได้แก่ โปรแกรม chkrootkits ,โปรแกรม Tripwire ,โปรแกรมประเภท Anti-Virus / Anti-Spam
  • ประโยชน์ของเครื่องมือสนับสนุนด้านการรักษาความปลอดภัยและดูแลระบบเหล่านี้ มีคุณค่าในตัวเองไม่น้อย แต่อย่าลืมว่าบางครั้งโปรแกรมเหล่านี้อาจจะเป็นดาบสองคมได้เช่นกัน ยกตัวอย่างเช่น โปรแกรมบางตัวอาจจะเปิดโอกาสให้มีการกระตุ้นจากภายนอก ซึ่งเหล่าผู้บุกรุกอาจใช้เป็นช่องทางในการสร้างภาระให้แก่เซิร์ฟเวอร์จนกระทั่งเกิดอาการ Overloading หรือ Overflow ที่เป็นการโจมตีแบบ Resource Utilization ได้เช่นกัน เตรียมรับมือ..ผู้ก่อการร้ายออนไลน์ ในขณะที่โลกของอินเตอร์เน็ตกำลังเติบโตชนิดไม่อยู่ ความสำคัญของอินเตอร์เน็ตก้าวเข้าสู่การเป็นสาธารณูปโภคพื้นฐานของชาวโลก การก่อการร้ายแบบออนไลน์กำลังเป็นจริงขึ้นทุกขณะ จากรายงานบนหน้าหนังสือพิมพ์มีข้อมูลที่ยืนยันจากแหล่งข่าวของประเทศเกาหลีใต้รายงานถึงการฝึกเหล่าแฮกเกอร์กว่า 500 คนในประเทศเกาหลีเหนือเพื่อเตรียมการก่อการร้ายแบบออนไลน์ โดยมีเป้าหมายเป็นกลุ่มผลประโยชน์ของสหรัฐและญี่ปุ่น จึงไม่น่าแปลกใจที่เราพบเห็นการบุกรุกเซิร์ฟเวอร์จากไอพีในแถบนั้นเสมอๆ คงไม่ต้องกล่าวอะไรกันมากนัก ถึงเวลาที่คุณจะทบทวน Ready 5 Concept แล้วครับ

    เอกสารอ้างอิง
  • Brian Caswell, SNORT.org ,Syngress, Snort 2.0 Instrusion Detection.
  • Microsoft Press,Security+ Certification Training Kit.