ThaiCERT: Thai Computer Emergency Response Team
ศูนย์ประสานงานการรักษาความปลอดภัยคอมพิวเตอร์ ประเทศไทย 
 
 
 



ชื่อเรื่อง : Hardening Apache Web Server
เรียบเรียงโดย : มนัชยา ชมธวัช
เผยแพร่เมื่อ : 11 พฤศจิกายน 2545

Hypertext Transfer Protocol เป็นโพรโตคอลเบื้องต้นที่ทำงานบน TCP เพื่อใช้ในการจัดรูปแบบ การรับ-ส่งและการเชื่อมโยงเอกสาร ซึ่งประกอบด้วยสื่อหลายชนิดแตกต่างกัน ได้แก่ ข้อความ รูปภาพ เสียง ภาพเคลื่อนไหวและวีดีโอ ถือเป็นพื้นฐานของระบบการให้บริการ World Wide Web (WWW) การทำงานของ HTTP มีลักษณะคล้ายคลึงกับการทำงานของโพรโตคอลชนิดไคลเอ็นต์/เซิร์ฟเวอร์อื่นๆ ที่มีใช้งานบนอินเทอร์เน็ต เช่น SMTP และ FTP

World Wide Web เป็นระบบการแลกเปลี่ยนข้อมูลบนอินเทอร์เน็ตที่มีผู้ใช้งานอย่างแพร่หลายในปัจจุบัน องค์ประกอบหลักของการทำงานคือ "เว็บ" ซึ่งถูกสร้างขึ้นด้วยโปรแกรมที่เรียกว่า "เว็บเซิร์ฟเวอร์" ทำหน้าที่จัดเตรียมข้อมูลไว้บนเครือข่าย และมีอีกโปรแกรมคือ "เว็บบราวเซอร์" ทำหน้าที่ในการเข้าถึงข้อมูลที่เก็บไว้ในเครื่องเว็บเซิร์ฟเวอร์และแสดงผลที่หน้าจอของผู้ใช้
เว็บเซิร์ฟเวอร์เป็นระบบที่ถูกกำหนดค่าให้ตอบสนองการร้องขอ HTTP วิธีการที่จะทำให้เครื่องทั่วไปเครื่องหนึ่งทำงานเป็นเว็บเซิร์ฟเวอร์ได้นั้น ผู้ดูแลระบบจะต้องติดตั้งเดมอนขึ้นมารอรับการติดต่อที่ TCP พอร์ต 80 (มาตรฐานของ HTTP 1.1 ตาม RFC 2616) เพื่อตอบสนองการร้องขอ และส่งเอกสารไปให้ผู้ใช้ตามที่ผู้ใช้ต้องการ

จากการสำรวจการใช้งานเครื่องเว็บเซิร์ฟเวอร์กว่า 18 ล้านเครื่องทั่วโลกโดย NetCraft.com พบว่ากว่า 62% ของเครื่องที่ถูกสำรวจใช้งานโปรแกรม Apache โดยอีก 20% และ 6% ใช้งานโปรแกรม IIS ของไมโครซอฟท์และ Netscape ตามลำดับ นอกจากนั้น จำนวนผู้ใช้งาน Apache ยังคงเพิ่มขึ้นเรื่อยๆ อย่างรวดเร็ว ดังรูปที่ 1

รูปที่ 1 แสดงสถิติการนำโปรแกรมต่างๆ มาใช้งานเป็นเว็บเซิร์ฟเวอร์

ในส่วนของระบบปฏิบัติการ Red Hat Linux นั้น ภายในแผ่นที่ใช้ในการติดตั้งระบบได้รวมเอาแพ็คเกจชนิด RPM ของโปรแกรม Apache ไว้ด้วย เช่น ภายใน Red Hat 7 จะมีแพ็คเกจ Apache 1.3.12 เพื่อให้ผู้ดูแลระบบสามารถติดตั้งโปรแกรม Apache ได้ในขณะเดียวกับที่ติดตั้งระบบปฏิบัติการ อย่างไรก็ตาม หากผู้ดูแลระบบคนใดต้องการติดตั้งโปรแกรม Apache เวอร์ชันล่าสุดก็สามารถดาวน์โหลดตัวโปรแกรมมาติดตั้งได้จาก http://httpd.apache.org ซึ่งภายในเว็บไซต์นี้จะประกอบด้วยซอฟต์แวร์ Apache เวอร์ชันใหม่ที่มีความเสถียร เวอร์ชันก่อนหน้านั้น และเวอร์ชันที่อยู่ในระหว่างการพัฒนา นอกจากนั้น หากผู้ดูแลระบบต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Apache ยังสามารถค้นหาได้จาก http://httpd.apache.org/docs

การติดตั้งโปรแกรม Apache

ก่อนการติดตั้งโปรแกรม Apache นั้น สิ่งหนึ่งที่ควรจะต้องพิจารณาคือ ความปลอดภัยของเครื่องที่จะใช้ติดตั้งโปรแกรม ทั้งในส่วนของระบบปฏิบัติการและเครือข่ายที่ใช้งาน ซึ่งผู้ดูแลระบบสามารถศึกษาวิธีการได้จากบทอื่นๆ ภายในเอกสารฉบับนี้ สิ่งที่ควรคำนึงถึงก็คือ ระบบปฏิบัติการที่ใช้ในเครื่องที่จะติดตั้งโปรแกรม Apache ควรได้รับการตั้งค่าให้เปิดให้บริการเฉพาะในส่วนที่จำเป็นต่อการทำงานอย่างมีประสิทธิภาพและปลอดภัยเท่านั้น โดยทั่วไปแล้ว หากผู้ดูแลระบบต้องการให้เครื่องให้บริการเครื่องหนึ่งทำงานเป็นเว็บเซิร์ฟเวอร์ ผู้ดูแลระบบไม่ควรเปิดให้บริการอื่นๆ เช่น ftp, mail หรือ DNS ทำงานบนเครื่องเดียวกัน รวมไปถึงแอพลิเคชันและโปรแกรมอื่นๆ ด้วย นอกจากนั้น ผู้ดูแลระบบควรจะอนุญาตให้เฉพาะผู้ใช้ที่มีหน้าที่เกี่ยวข้องเท่านั้นจึงจะได้รับสิทธิ์ในการเข้าใช้งานเครื่อง และจะต้องให้คำแนะนำเกี่ยวกับการตั้งรหัสผ่านที่ดีและวิธีการใช้งานเครื่องอย่างปลอดภัย ส่วนด้านเครือข่ายนั้น ผู้ดูแลระบบจะต้องพิจารณาถึงวิธีการป้องกันการโจมตีแบบ Denial of Service (DoS) และการโจมตีรูปแบบอื่นๆ ที่จะส่งผลให้เครื่องไม่สามารถให้บริการได้ตลอดเวลาหรือได้รับความเสี่ยงจากการบุกรุก

วิธีการติดตั้งโปรแกรม Apache ลงในเครื่องภายหลังจากที่ได้ติดตั้งระบบปฏิบัติการแล้วสามารถทำได้ 2 วิธี (ในที่นี้จะไม่กล่าวถึงวิธีการติดตั้งโปรแกรม Apache ในขณะที่ติดตั้งระบบปฏิบัติการ) คือการติดตั้งโดยใช้แพ็คเกจชนิด RPM และการติดตั้งโดยการคอมไพล์จากไฟล์ต้นฉบับ ข้อดีของการติดตั้งโปรแกรม Apache โดยการคอมไพล์จากไฟล์ต้นฉบับแทนที่จะใช้แพ็คเกจที่ได้รับการคอมไพล์มาแล้วคือ ทำให้ผู้ดูแลระบบได้ตัดสินใจด้วยตนเองว่าต้องการใช้งานโมดูลและลักษณะพิเศษใดบ้างที่เครื่องเว็บเซิร์ฟเวอร์ของตน และในบางครั้ง แพ็คเกจชนิด RPM ที่นำมาติดตั้งในเครื่องอาจไม่สามารถใช้งานได้ เนื่องจากไลบรารี่ที่ใช้งานไม่ตรงกัน
เนื้อหาในส่วนนี้จึงขอกล่าวถึงเฉพาะการติดตั้งโปรแกรม Apache โดยการคอมไพล์จากไฟล์ต้นฉบับ (สำหรับผู้ดูแลระบบที่ต้องการติดตั้งแพ็คเกจชนิด RPM สามารถศึกษาวิธีการและออปชันที่เกี่ยวข้องเพิ่มเติมได้จากคำสั่ง # rpm -q apache -l | more)

การปรับแต่งค่าในการติดตั้งโปรแกรม Apache

หลังจากที่ผู้ดูแลระบบได้ดาวน์โหลดตัวโปรแกรม Apache มาไว้ที่ไดเรกทอรีที่ต้องการและทำการแตกไฟล์ออกมาแล้ว ผู้ดูแลระบบควรจะปรับแต่งค่าการทำงานของโปรแกรม Apache เสียก่อน ซึ่งสามารถทำได้ 2 วิธีคือ การปรับแต่งค่าด้วยตนเองโดยการแก้ไขไฟล์ชื่อ Makefile และการปรับแต่งค่าด้วยวิธี APACI (เป็นรูปแบบการแก้ไขค่าโดยให้ผู้ใช้เลือกรายการสิ่งที่ต้องการ) ในที่นี้ จะขอแนะนำวิธีของ APACI เนื่องจากเป็นวิธีที่ง่ายและรวดเร็ว และหากผู้ดูแลระบบต้องการข้อมูลเพิ่มเติมจากนอกเหนือจากเอกสารฉบับนี้สามารถศึกษาได้จากไฟล์ README และไฟล์ INSTALL

ตัวอย่าง หากผู้ดูแลระบบดาวน์โหลดไฟล์ต้นฉบับโปรแกรม Apache เวอร์ชัน 1.3.26 มาไว้ที่ไดเรกทอรี /usr/local/src ภายในไดเรกทอรีดังกล่าวจะปรากฏไฟล์ apache_1.3.26.tar.gz หรือ apache_1.3.26.tar.Z ตามชนิดที่ผู้ดูแลระบบเลือกดาวน์โหลด
หลังจากที่ผู้ดูแลระบบแตกไฟล์ดังกล่าวแล้ว จะปรากฏไดเรกทอรี apache_1.3.26 ในไดเรกทอรี /usr/local/src
หากผู้ดูแลระบบต้องการรายละเอียดเพิ่มเติมสามารถหาข้อมูลได้จากไฟล์ README และไฟล์ INSTALL ในไดเรกทอรี /usr/local/src/apache_1.3.26

วิธีการปรับแต่งค่า แบบ APACI นั้นสามารถทำได้โดยการเรียกใช้งานสคริปต์ชื่อ configure ภายในไดเรกทอรีของ Apache โดยการสั่ง # ./configure
หากผู้ดูแลระบบต้องการทราบออปชันต่างๆ ทั้งหมดที่ใช้งานกับสคริปต์ configure สามารถทำได้โดยสั่ง # ./configure --help

ตารางที่ 1 แสดงออปชันที่ใช้งานกับสคริปต์ configure เพื่อปรับแต่งการทำงานของโปรแกรม Apache ที่นิยมใช้งาน

I. ออปชันที่ใช้ในการกำหนดไดเรกทอรีที่จะติดตั้งโปรแกรม

--prefix=DIR

กำหนดไดเรกทอรีที่จะใช้ติดตั้งโปรแกรม Apache (DIR) เช่น --prefix=/usr/local/apache
--layout กำหนดให้แสดงรายการไดเรกทอรีทั้งหมดที่ใช้ในการติดตั้งโปรแกรม และไดเรกทอรีต่างๆ ของโปรแกรม Apache
--compat กำหนดให้ติดตั้งโปรแกรมและไดเรกทอรีต่างๆ เหมือนกับที่ได้เคยติดตั้งไว้ (ใช้สำหรับการอัพเกรดโปรแกรม)
II. ออปชันที่ใช้ในการเพิ่มหรือยกเลิกการใช้งาน rule และ module
--enable-rule=NAME เพิ่ม rule ที่ต้องการใช้งานกับโปรแกรม Apache เช่น SOCK4
--disable-rule=NAME
ยกเลิกการใช้ rule ที่ไม่ต้องการนำมาใช้กับโปรแกรม Apache
--enable-module=NAME เพิ่ม module ที่ต้องการใช้งานกับโปรแกรม Apache เช่น usertrack
--enable-module=NAME ยกเลิกการใช้ module ที่ไม่ต้องการนำมาใช้กับโปรแกรม Apache
--add-module=FILE
เพิ่ม module ชนิด 3rd party ที่ยังไม่มีใช้งานในโปรแกรม Apache ให้ทำงานร่วมกับโปรแกรม Apache (เป็นการ copy & activate)
--activate-module=FILE เพิ่ม module ชนิด 3rd party ที่มีใช้งานในโปรแกรม Apache ให้ทำงานร่วมกับโปรแกรม Apache เช่น PHP
III. ออปชัน suEXEC
คำอธิบาย suEXEC เป็นออปชันที่ทำให้ผู้ใช้งานเว็บบราวเซอร์สามารถเรียกใช้งานโปรแกรมประเภท CGI และ SSI ได้โดยใช้สิทธิ์ของผู้ใช้คนอื่นนอกเหนือจากผู้เรียกใช้งานเว็บเซิร์ฟเวอร์ได้ โดยปกติแล้วการเรียกใช้งานโปรแกรม CGI และ SSI จะต้องใช้สิทธิ์ของผู้ใช้เรียกใช้งานเว็บเซิร์ฟเวอร์ ซึ่งก็คือผู้ดูแลระบบนั่นเอง

--enable-suexec

กำหนดให้ออปชัน suexec ทำงาน
--suexec-caller=NAME กำหนดชื่อผู้ใช้ที่จะอนุญาตให้เรียกใช้งานโปรแกรม CGI และ SSI ผ่านทางโปรแกรม Apache โดยไม่ต้องได้รับสิทธิ์ของผู้เรียกใช้งานเว็บเซิร์ฟเวอร์ โดยทั่วไปแล้วจะกำหนดให้เป็นผู้ใช้คนเดียวกับที่เข้าใช้งานผ่านทางเว็บบราวเซอร์

ตัวอย่าง หากผู้ดูแลระบบต้องการติดตั้งโปรแกรม Apache ไว้ที่ไดเรกทอรี /usr/local/apache และต้องการใช้งานออปชัน suEXEC โดยกำหนดให้ผู้เข้าใช้งานเว็บเซิร์ฟเวอร์และใช้งานโปรแกรม CGI หรือ SSI ผ่านทางเว็บบราวเซอร์คือผู้ใช้ชื่อ nobody
ผู้ดูแลระบบจะต้องสั่งให้สคริปต์ configure ทำงานโดยกำหนดออปชันดังนี้
/usr/local/src/apache_1.3.26 # ./configure --prefix=/usr/local/apache --enable-suexec --suexec-caller=nobody

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

เริ่มต้นใช้งานโปรแกรม Apache

หลังจากที่ผู้ดูแลระบบติดตั้งโปรแกรม Apache แล้ว ผู้ดูแลระบบสามารถเรียกใช้งานโปรแกรม Apache ได้ทันทีซึ่งจะทำให้การทำงานของโปรแกรมเป็นค่าดีฟอลต์ วิธีการสั่งให้โปรแกรม Apache เริ่มต้นทำงานสามารถทำได้โดยการใช้โปรแกรมที่ถูกติดตั้งมาพร้อมกับการติดตั้งโปรแกรม Apache ชื่อ apachectl ที่อยู่ในไดเรกทอรี /path_to_apache/bin เช่น /usr/local/apache/bin/apachectl โปรแกรม apachectl นี้เป็นสคริปต์ที่ถูกสร้างขึ้นมาเพื่อควบคุมการทำงานของโปรแกรม Apache ผู้ดูแลระบบสามารถใช้สคริปต์ apahcectl เพื่อสั่งให้โปรแกรม Apache เริ่มทำงาน จบการทำงาน หรือเริ่มต้นทำงานใหม่อีกครั้งได้อย่างสะดวกและรวดเร็วกว่า การสั่งให้โพรเซสของ Apache เริ่มทำงานเอง หรือการสั่งปิดโพรเซสของ Apache แต่ละโพรเซสด้วยตนเอง

อย่างไรก็ตาม เพื่อให้การทำงานของโปรแกรม Apache มีความปลอดภัยสูงขึ้น ผู้ดูแลระบบควรปรับแต่งค่าการทำงานของโปรแกรม Apache และไฟล์ที่เกี่ยวข้องให้รัดกุมและเหมาะสมกับระบบของตนมากขึ้น ดังต่อไปนี้

ไฟล์กำหนดการทำงานของโปรแกรม Apache

โดยทั่วไปแล้ว ไฟล์กำหนดการทำงานของโปรแกรม Apache ประกอบด้วยไฟล์ต่างๆ ในไดเรกทอรี /path_to_apache/conf เช่น /usr/local/apache/conf ทั้งหมด 5 ไฟล์ คือ

แต่การใช้งานจริงนั้น โปรแกรม Apache อนุญาตให้ผู้ดูแลระบบปรับแต่งค่าเฉพาะสามไฟล์แรก ส่วนไฟล์ที่เหลืออีกสองไฟล์คือ magic เป็นไฟล์ที่ใช้งานกับโมดูลพิเศษชื่อ mod_mime_magic และ mime.types เป็นไฟล์ที่ใช้ควบคุมชนิดของ MIME ที่ใช้ส่งให้ผู้ขอใช้งาน ทั้งสองไฟล์นี้จะถูกปล่อยไว้ตามที่โปรแกรมสร้างไว้ตอนติดตั้ง หากผู้ดูแลระบบคนใดต้องการสร้างหรือใช้งาน MIME ชนิดอื่นๆ สามารถทำได้โดยอาศัย directive ชื่อ AddType แทนการแก้ไขไฟล์เหล่านี้

ภายในไฟล์ httpd.conf, access.conf และ srm.conf มีโครงสร้างการกำหนดค่าในลักษณะเดียวกัน คือจะมีออปชันต่างๆ ที่อนุญาตให้ผู้ดูแลระบบแก้ไข เรียกว่า directive ซึ่งแต่ละ directive จะทำหน้าที่ในการกำหนดค่าการทำงานและการแสดงผลต่างๆ ของเว็บเซิร์ฟเวอร์นั้นๆ เช่น กำหนดชื่อเซิร์ฟเวอร์ กำหนดจำนวนผู้เข้าใช้งาน เป็นต้น ผู้ดูแลระบบสามารถปรับแต่งแก้ไขค่าในไฟล์ทั้งสามไฟล์นี้เพื่อให้เว็บเซิร์ฟเวอร์ทำงานตามที่ต้องการ อย่างไรก็ตาม ขอแนะนำให้ผู้ดูแลระบบรวม directive ทั้งหมดที่ใช้ในการกำหนดการทำงานไว้ในไฟล์ httpd.conf เพียงไฟล์เดียวเพื่อความสะดวกในการจัดการแก้ไข และปล่อยให้อีกสองไฟล์ที่เหลือเป็นไฟล์ว่าง

Directive ที่ควรได้รับการพิจารณากำหนดค่าให้เหมาะสม เพื่อเพิ่มความปลอดภัยให้กับโปรแกรม Apache และเครื่องเว็บเซิร์ฟเวอร์ประกอบด้วย

รูปที่ 2 แสดงการทำงานของโพรเซส Apache (http)


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

รูปที่ 3 แสดงผลลัพธ์จากการกำหนดค่า ServerSignature On

รูปที่ 4 แสดงผลลัพธ์จากการกำหนดค่า ServerSignature Off

รูปที่ 5 แสดงผลลัพธ์จากการกำหนดค่า ServerTokens Full

รูปที่ 6 แสดงผลลัพธ์จากการกำหนดค่า ServerTokens ProductOnly

รูปที่ 7 แสดงผลลัพธ์จากการกำหนดค่า FancyIndexing On

วิธีการตรวจสอบตัวตนผู้ขอเข้าใช้งานเว็บเซิร์ฟเวอร์

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

การกำหนดค่าด้วยวิธี Host-based Authentication ทำได้โดยการใช้ directive สามอันคือ Order, Deny และ Allow กำหนดไว้ภายในไดเรกทอรีที่ต้องการให้มีการตรวจสอบตัวตนผู้ใช้เพื่อจำกัดการเข้าใช้งาน เช่น ถ้ามีไดเรกทอรีชื่อ staff อยู่ภายในไดเรกทอรี /usr/local/apache/htdocs ซึ่งต้องการให้เฉพาะเครื่องที่อยู่ในโดเมน nectec.or.th เข้าใช้งานได้เท่านั้น ผู้ดูแลระบบจะต้องกำหนดค่าไว้ใน directive ของไดเรกทอรี /usr/local/apache/htdocs/staff ดังตัวอย่างด้านบน

รูปที่ 8 แสดงหน้าต่างที่กำหนดให้ผู้ขอใช้งานใส่ค่า username และรหัสผ่าน เป็นผลมาจากใช้งาน HTTP-specified basic Authentication

ตัวอย่างการใช้งาน
หากผู้ดูแลระบบต้องการจำกัดการใช้งานไดเรกทอรี /usr/local/apache/htdocs/staff โดยกำหนดให้ผู้ต้องการใช้งานทุกคนต้องใส่ค่า userrname และรหัสผ่าน เพื่อตรวจสอบว่าผู้ใช้คนดังกล่าวได้รับสิทธิ์ในการเข้าใช้งาน ดังรูปที่ 7 ด้านบน ผู้ดูแลระบบจะต้องดำเนินการดังนี้

เจ้าของและสิทธิ์การเข้าใช้งานไฟล์ที่เกี่ยวข้องกับโปรแกรม Apache

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

ภายในไดเรกทอรี Apache ประกอบด้วยไดเรกทอรีย่อยที่สำคัญทั้งหมด ไดเรกทอรี คือ

ผู้ดูแลระบบควรปรับแก้ชื่อเจ้าของไฟล์และไดเรกทอรีที่เกี่ยวข้อง รวมถึงสิทธิ์การเข้าใช้งานโปรแกรม Apache ดังนี้

  drwxr-xr-x 13 root root 4096 Jul 10 15:35 apache/
  drwx------ 2 root root 4096 Jul 9 10:50 bin/
  drwx--x--x 2 root root 4096 Jul 9 10:50 cgi-bin/
  drwx------ 2 root root 4096 Jul 9 10:50 conf/
  drwxr-xr-x 4 webmaster webmaster 4096 Jul 10 15:38 htdocs/
  drwx------ 2 root root 4096 Jul 10 16:47 logs/

ข้อควรระวังอื่นๆ ในการใช้งานโปรแกรม Apache

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



Home || เอกสารเผยแพร่ || Unix & Linux

ThaiCERT Disclaimer | Copyright © 2001 ThaiCERT(NECTEC). All rights reserved.