รายการตรวจสอบแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ Apache 14 ขั้นตอน (รวม PDF eBook)

เผยแพร่แล้ว: 2017-11-22

รถไฟ fx / stock.adobe.com

ปัจจุบัน Apache ยังคงเป็นซอฟต์แวร์เว็บเซิร์ฟเวอร์ชั้นนำของโลกโดยมีส่วนแบ่งตลาด 45.8% นั่นกลายเป็นเว็บไซต์ประมาณ 80 ล้านแห่งที่มีเว็บเซิร์ฟเวอร์ที่ขับเคลื่อนโดย Apache ค่อนข้างน่าประทับใจใช่ไหม?

Apache เป็นซอฟต์แวร์เว็บเซิร์ฟเวอร์โอเพ่นซอร์สที่มีมาตั้งแต่ปี 1995 ดังนั้นเพียงอย่างเดียวจึงพูดถึงความน่าเชื่อถือและอายุการใช้งานที่ยืนยาวได้ มีเว็บไซต์ชื่อดังหลายแห่งที่ทำงานบนเซิร์ฟเวอร์ Apache: Apple, Adobe และ Paypal เป็นเพียงแบรนด์หลักเพียงไม่กี่แบรนด์ที่มอบความไว้วางใจให้เว็บไซต์ของตนกับ Apache

แน่นอนว่านั่นไม่ได้ทำให้ Apache ปลอดภัย 100% เนื่องจากไม่มีซอฟต์แวร์ใดที่จะปลอดภัยจากแฮกเกอร์ได้ 100% โดยเฉพาะอย่างยิ่งเมื่อเป็นแพลตฟอร์มที่มีชื่อเสียงและเชื่อถือได้ (เหมือนกับ WordPress) แต่หากคุณกำลังมองหา eBook PDF, โมดูล, คำแนะนำ, บทช่วยสอน, เฟรมเวิร์ก หรือรายการตรวจสอบความปลอดภัยของเว็บเซิร์ฟเวอร์ของ Apache คุณมาถูกที่แล้ว

หากคุณต้องการเพิ่มความปลอดภัยให้กับ Apache ของคุณ หรือกำลังมีปัญหาด้านความปลอดภัยของ Apache หรือพยายามแก้ไขช่องโหว่หนึ่งหรือสองรายการ รายการตรวจสอบต่อไปนี้จะให้แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย 14 ข้อแก่คุณเพื่อเพิ่มลงในแผนการรักษาความปลอดภัยของเว็บไซต์ของคุณ

ทีมงานของเราที่ WP Buffs ช่วยให้เจ้าของเว็บไซต์ พันธมิตรเอเจนซี่ และพันธมิตรอิสระนำแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ Apache ไปปฏิบัติ ไม่ว่าคุณจะต้องการให้เราจัดการ 1 เว็บไซต์หรือสนับสนุนไซต์ลูกค้า 1,000 แห่ง เราก็พร้อมช่วยเหลือคุณ

รายการตรวจสอบแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ Apache ขั้นสูงสุด

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

1. อัพเดตอาปาเช่

คุณรู้หรือไม่ว่า WordPress และปลั๊กอินและธีมใด ๆ ที่คุณติดตั้งจำเป็นต้องได้รับการอัปเดตเป็นประจำ? เว็บเซิร์ฟเวอร์ของคุณก็เช่นกัน

หากคุณกังวลใจว่าไซต์ของคุณไม่ได้ทำงานบน Apache เวอร์ชันล่าสุด คุณสามารถตรวจสอบได้โดยใช้บรรทัดคำสั่ง httpd -v หากเวอร์ชันที่เอาต์พุตไม่ตรงกับเวอร์ชันปัจจุบันจาก Apache คุณสามารถอัปเดตได้ด้วยวิธีต่อไปนี้:

# yum update httpd
# apt-get install [add Apache version here]c

2. เปิดบันทึก

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

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

3. รับใบรับรอง SSL

เนื่องจากเว็บเซิร์ฟเวอร์ของคุณจัดการคำขอเบราว์เซอร์/เซิร์ฟเวอร์ทั้งหมดไปยังเว็บไซต์ของคุณ การรักษาความปลอดภัยด้วยใบรับรอง SSL จึงเป็นสิ่งสำคัญ ข่าวดีก็คือ ตอนนี้คุณสามารถรับใบรับรอง SSL ได้ฟรี สิ่งนี้สำคัญกว่าที่เคย ดังนั้นหากคุณไม่มีความสามารถด้านเทคนิคในการติดตั้งด้วยตนเอง ผู้ให้บริการโฮสติ้งคุณภาพจะสามารถทำสิ่งนี้ให้คุณได้

4. เพิ่มไฟร์วอลล์

นอกเหนือจากการเพิ่มการป้องกันการเข้ารหัสของ SSL แล้ว เว็บเซิร์ฟเวอร์ของคุณควรได้รับการเสริมความแข็งแกร่งด้วยไฟร์วอลล์ สำหรับ Apache นี่หมายถึงการเปิด ModSecurity

หากต้องการติดตั้งบนเซิร์ฟเวอร์ของคุณ คุณสามารถดำเนินการดังต่อไปนี้:

# yum install mod_security
# /etc/init.d/httpd restart

เมื่อไฟร์วอลล์ใช้งานได้ ไฟร์วอลล์จะป้องกันกิจกรรมที่เป็นอันตรายจำนวนหนึ่งไม่ให้เข้าถึงเซิร์ฟเวอร์ของคุณ เช่น การแทรก SQL การไฮแจ็กเซสชัน และการเขียนสคริปต์ข้ามไซต์

5. ติดตั้ง mod_evasive

Mod_evasive เป็นโมดูลที่จะปกป้องเซิร์ฟเวอร์ Apache ของคุณจากการโจมตีแบบ bruteforce และ DDoS ดังนั้นตรวจสอบให้แน่ใจว่าได้เปิดใช้งานไว้เช่นกัน มันจะขึ้นบัญชีดำความพยายามในการเข้าสู่ระบบพร้อมกันและล้มเหลว รวมถึงตรวจสอบ IP ที่เป็นอันตราย

6. ตั้งค่าขีดจำกัด HTTP

การโจมตีแบบปฏิเสธการให้บริการแบบกระจาย (DDoS) นั้นค่อนข้างง่ายที่จะบล็อกหากคุณรู้ว่าควรระวังการกระทำประเภทใด เนื่องจาก DDoS มีแนวโน้มที่จะเกิดขึ้นโดยการส่งคำขอจำนวนมากไปยังเซิร์ฟเวอร์ของคุณซ้ำๆ เป้าหมายของคุณจึงควรกำหนดขีดจำกัดเพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น

ต่อไปนี้คือขีดจำกัดบางประการที่คุณต้องการกำหนด:

  • KeepAlive=เปิด
  • KeepAliveTimeout
  • LimitRequestBody
  • เขตข้อมูลคำขอจำกัด
  • LimitRequestFieldSize
  • LimitRequestLine
  • LimitXMLRequestBody
  • MaxClients
  • คำขอ MaxKeepAlive
  • MaxRequestWorkers
  • คำขอ ReadTimeout
  • หมดเวลา

7. ลบโมดูลที่ไม่ได้ใช้

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

สิ่งแรกที่คุณควรทำคือค้นหาว่าโมดูลใดที่ใช้งานอยู่จริง คุณสามารถทำได้โดยใช้คำสั่ง LoadModule เมื่อคุณกรองรายการและระบุว่าโมดูลใดที่คุณไม่ต้องการแล้ว เพียงเพิ่มสัญลักษณ์ “#” หน้าแต่ละโมดูลที่คุณต้องการปิดการใช้งานแล้วรีสตาร์ท

8. เปลี่ยนผู้ใช้และกลุ่มเริ่มต้น

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

แทนที่จะปล่อยค่าเริ่มต้นไว้ คุณควรสร้างบัญชีใหม่ที่ไม่มีสิทธิพิเศษเพื่อเรียกใช้กระบวนการ Apache ของคุณ การใช้คำสั่ง # groupadd และ # useradd คุณสามารถตั้งค่าเอนทิตีใหม่ได้ เพียงอย่าลืมอัปเดต httpd.conf ของคุณด้วยชื่อผู้ใช้และกลุ่มใหม่ที่คุณสร้างขึ้น

9. บล็อกการเข้าถึงไดเรกทอรี

นี่เป็นอีกตัวอย่างหนึ่งของการตั้งค่าเริ่มต้นที่ต้องเปลี่ยนแปลง ในกรณีนี้ สิทธิ์ในการเข้าถึงไฟล์ในไดเรกทอรีของคุณจะช่วยให้ใครก็ตามสามารถสำรวจได้ทุกที่ที่ต้องการ

หากต้องการวางบล็อกทั้งหมดให้ใช้คำสั่งต่อไปนี้:

<Directory "/">
Require all denied
</Directory>

หากคุณต้องการเปิดใช้งานการเข้าถึงสำหรับผู้ใช้บางราย คุณสามารถทำได้ดังนี้:

<Directory "/usr/users/*/public_html">
Require all granted
</Directory>

หากคุณต้องการเปิดใช้งานการเข้าถึงบางโฟลเดอร์ภายในไดเร็กทอรี คุณสามารถทำได้ดังนี้:

<Directory "/usr/local/httpd">
Require all granted
</Directory>

คุณอาจต้องการอ่านพื้นที่เก็บข้อมูลโมดูล Apache เพื่อปรับแต่งสิทธิ์การเข้าถึงของผู้ใช้เพิ่มเติม

10. อย่าเผยแพร่ไดเร็กทอรี

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

<Directory /var/www/html>
Options -Indexes
</Directory>

11. ซ่อนรายละเอียดเซิร์ฟเวอร์

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

มีสองสิ่งที่คุณต้องการปิดการใช้งาน:

  • ServerSignature – ซึ่งเป็นเวอร์ชันของ Apache
  • ServerTokens – ซึ่งรวมถึงเวอร์ชันระบบปฏิบัติการ ท่ามกลางรายละเอียดเซิร์ฟเวอร์ที่ละเอียดอ่อนอื่นๆ

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

ServerSignature Off
ServerTokens Prod

12. ซ่อน ETag

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

เมื่อต้องการทำเช่นนี้ ให้เพิ่มคำสั่งต่อไปนี้ใน httpd.conf ของคุณ:

FileETag None

13. ปิดการใช้งาน .htaccess แทนที่

.htaccess เป็นไฟล์สำคัญสำหรับเว็บไซต์ WordPress นี่คือสาเหตุว่าทำไมคุณต้องล็อคมันและให้แน่ใจว่าไม่มีใครสามารถแทนที่การตั้งค่าของคุณได้

หากต้องการปิดการใช้งานนี้ ให้เพิ่มสิ่งต่อไปนี้ใน httpd.conf ของคุณที่รูท:

<Directory />
Options -Indexes
AllowOverride None
</Directory>

14. ปิดการใช้งาน SSI และ CGI

ไฟล์ที่เปิดใช้งาน Server Side Included (SSI) สามารถเปิดเว็บไซต์ของคุณได้ถึงปัญหาด้านความปลอดภัยหลายประการ หากปล่อยทิ้งไว้โดยไม่เลือก เช่นเดียวกับสคริปต์ CGI เพื่อป้องกันไม่ให้แฮกเกอร์เพิ่มศักยภาพให้แฮกเกอร์โหลดเซิร์ฟเวอร์ของคุณมากเกินไปหรือแทรกสคริปต์ที่เป็นอันตรายลงในโค้ดของคุณ อย่าลืมปิดหรือจำกัดสิ่งที่พวกเขาทำผ่านคำสั่งตัวเลือก

นี่คือค่าตัวเลือกบางส่วนที่คุณสามารถใช้ได้:

  • ตัวเลือกทั้งหมด
  • ตัวเลือกรวมถึงNOEXEC
  • ตัวเลือก-รวม
  • ตัวเลือก -ExecCGI
  • ตัวเลือก -รวม -ExecCGI
  • ตัวเลือก MultiViews

ดูแลเซิร์ฟเวอร์ Apache ของคุณ

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

ต้องการแสดงความคิดเห็นหรือเข้าร่วมการสนทนาหรือไม่?เพิ่มความคิดเห็นของคุณบน Twitter