Subscribe to fs Linux |File Server Linux, Black Friday Subscribe to fs Linux |File Server Linux, Black Friday's comments

  KitchenSource GREAT PRICES ON BLUETOOTH HEADSETS!

บทความนี้ขอแนะนำการปรับแต่งคอนฟิกพื้นฐานของ Apache ซึ่งติดตั้งมากับ Fedora 9 ทำให้เว็บเซิร์ฟเวอร์ทำงานอย่างมีประสิทธิภาพ โดยการปิดคุณสมบัติที่ไม่ได้ใช้งานออกไป เพื่อประหยัดขนาด CPU, Memory ที่ต้องใช้ในการรันโปรแกรม

การแก้ไขทั้งหมดในบทความนี้เป็นการแก้ไขคอนฟิกในไฟล์ /etc/httpd/conf/httpd.conf ซึ่งจะเป็นไฟล์คอนฟิกหลักของ Apache เว็บเซิร์ฟเวอร์

คำเตือน

                      กรุณาทดสอบการแก้ไขคอนฟิกในเครื่องทดลองก่อนที่จะนำไปใช้กับเว็บเซิร์ฟเวอร์จริงๆ
                      แนะนำให้สำรองไฟล์ (backup) ก่อนที่จะแก้ไขคอนฟิก
ตรวจสอบความถูกต้องของรูปแบบไฟล์ httpd.conf
เมื่อแก้ไขไฟล์ httpd.conf เสร็จสิ้น ให้ใช้คำสั่ง httpd –t เพื่อตรวจสอบรูปแบบ (syntax) ของไฟล์ก่อนว่าถูกต้องหรือไม่ ผลลัพธ์จากการรันคำสั่งต้องขึ้นว่า Syntax OK ก่อนที่จะ restart เซอร์วิสใหม่อีกครั้งเพื่อให้คอนฟิกที่แก้ไขมีผล

ตัวอย่างการใช้คำสั่ง httpd –t เพื่อตรวจสอบ syntax ของไฟล์ httpd.conf

[root@web-server ~]# httpd -t
Syntax OKตัวอย่างผลลัพธ์การตรวจสอบในกรณีที่รูปแบบ syntax ของไฟล์ httpd.conf ไม่ถูกต้อง

[root@web-server ~]# httpd -t
Syntax error on line 44 of /etc/httpd/conf/httpd.conf:
Invalid command ‘ServerToken’, perhaps misspelled or defined by a module not included in the server configurationผลลัพธ์จะฟ้องว่าผิดตรงไหนในไฟล์คอนฟิก พร้อมทั้งคำแนะนำในการแก้ไข ซึ่งต้องแก้ไขจนกว่าจะได้ผลลัพธ์ “Syntax OK” แล้วค่อยใช้คำสั่ง service เพื่อทำการ restart เว็บเซิร์ฟเวอร์

——————————————————————————–

ServerTokens OS
ServerTokens จะเป็นคอนฟิกที่ใช้ควบคุมการส่งข้อมูลของ Server: ใน HTTP Header กลับไปยังเว็บไคลเอนต์ เพื่ออธิบายถึงโปรแกรมที่ใช้รันเป็นเว็บเซิร์ฟเวอร์ และรายละเอียดเพิ่มเติม

แนะนำให้เปลี่ยนคอนฟิกจาก OS เป็น Prod เพื่อลดรายละเอียดของโปรแกรมที่ใช้ ด้วยเหตุผลทางด้านความปลอดภัยของตัวเซิร์ฟเวอร์เอง

ดีฟอลต์จากการติดตั้ง Fedora 9

ServerTokens OSข้อมูล Server: ใน HTTP Header ที่ส่งกลับไปยังไคลเอนต์จะมีทั้งชื่อโปรแกม เวอร์ชั่น และระบบปฏิบัติการที่ใช้ เช่น Apache/2.2.8 (Fedora)

คำแนะนำ

ServerTokens Prodข้อมูล Server: ใน HTTP Header จะส่งแค่คำว่า Apache

——————————————————————————–

ServerSignature On
คอนฟิก ServerSignature จะควบคุมการแสดงข้อมูลของเว็บเซิร์ฟเวอร์ในหน้าเว็บเพจที่เปิดแล้วมีปัญหา เช่น Apache Server at 10.3.3.91 Port 80

แนะนำให้เปลี่ยนจาก On เป็น Off เพื่อปิดการแสดงข้อมูล

ดีฟอลต์จากการติดตั้ง Fedora 9

ServerSignature Onคำแนะนำ

ServerSignature Off
——————————————————————————–

ปิดการใช้คุณสมบัติ Indexes
ดีฟอลต์คอนฟิกที่ติดตั้งมากับ Fedora นั้น จะเปิดการใช้ Indexes เพื่อแสดงชื่อไฟล์ต่างๆ ที่อยู่ในไดเร็คทอรี่ ที่ไม่มีไฟล์ index.html

ดีฟอลต์จากการติดตั้ง Fedora 9
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
คำแนะนำ

ปิดการใช้งาน Indexes โดยลบออกจากบรรทัด Options ในคอนฟิก Directory ต่างๆ
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

——————————————————————————–

ปิดคอนฟิกการแสดงรูป icons
หลังจากการปิดการใช้งาน Indexes เพื่อแสดงชื่อไฟล์ต่างๆ ที่อยู่ในไดเร็คทอรีที่ไม่มีไฟล์ index.html เราสามารถปิดคอนฟิก icons ในบรรทัดต่อไปนี้ในไฟล์ได้ วิธีการปิดที่แนะนำคือใส่เครื่องหมาย # ไว้ด้านหน้า

ตัวอย่างการปิดคอนฟิก icons ในไฟล์ httpd.conf ด้วยการใส่เครื่องหมาย #

#Alias /icons/ “/var/www/icons/”#
# Options Indexes MultiViews FollowSymLinks
# AllowOverride None
# Order allow,deny
# Allow from all
##IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable#AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip#AddIconByType (TXT,/icons/text.gif) text/*
#AddIconByType (IMG,/icons/image2.gif) image/*
#AddIconByType (SND,/icons/sound2.gif) audio/*
#AddIconByType (VID,/icons/movie.gif) video/*#AddIcon /icons/binary.gif .bin .exe
#AddIcon /icons/binhex.gif .hqx
#AddIcon /icons/tar.gif .tar
#AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
#AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
#AddIcon /icons/a.gif .ps .ai .eps
#AddIcon /icons/layout.gif .html .shtml .htm .pdf
#AddIcon /icons/text.gif .txt
#AddIcon /icons/c.gif .c
#AddIcon /icons/p.gif .pl .py
#AddIcon /icons/f.gif .for
#AddIcon /icons/dvi.gif .dvi
#AddIcon /icons/uuencoded.gif .uu
#AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
#AddIcon /icons/tex.gif .tex
#AddIcon /icons/bomb.gif core#AddIcon /icons/back.gif ..
#AddIcon /icons/hand.right.gif README
#AddIcon /icons/folder.gif ^^DIRECTORY^^
#AddIcon /icons/blank.gif ^^BLANKICON^^#DefaultIcon /icons/unknown.gif#ReadmeName README.html
#HeaderName HEADER.html#IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
——————————————————————————–

ปิดการใช้งาน CGI (ในกรณีที่ไม่ใช้งาน)
หากเว็บเซิร์ฟเวอร์ไม่มีการใช้งาน CGI แนะนำให้ปิดคุณสมบัตินี้ออกไป วิธีการปิดคือใส่เครื่องหมาย # นำหน้า บรรทัดต่อไปนี้

ตัวอย่างการปิดการใช้งาน CGI โดยการใส่เครื่องหมาย # นำหน้าบรรทัด

#ScriptAlias /cgi-bin/ “/var/www/cgi-bin/”#
# AllowOverride None
# Options None
# Order allow,deny
# Allow from all
#
——————————————————————————–

ปิดการใช้งาน Server-Side Includes (SSI)
หากไม่มีการใช้งาน Sever-Side Includes (SSI) แนะนำให้ปิดคุณสมบัตินี้ออกไป วิธีการปิดคือใส่เครื่องหมาย # นำหน้า บรรทัดต่อไปนี้

ตัวอย่างการปิดการใช้งาน Server-Side Includes (SSI) โดยการใส่เครื่องหมาย # นำหน้าบรรทัด

#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml

Leave a Reply

You must be logged in to post a comment.