คู่มือ Apache Security Configurations สำหรับ PHP
คู่มือนี้เรียบเรียงสำหรับ Ruk-Com PaaS หน้าจอและตัวเลือกอาจแตกต่างตามเวอร์ชันและสิทธิ์ของบัญชี
ตรวจสอบ Environment, Region, สิทธิ์บัญชี และสำรองค่าปัจจุบันก่อนดำเนินการกับระบบจริง
คำสั่ง ชื่อเมนู Parameter และค่าตัวอย่างในกรอบ Code คงรูปแบบตามระบบเพื่อให้คัดลอกและตรวจสอบได้ถูกต้อง
ในบทช่วยสอนนี้เราจะแสดงวิธีตั้งค่าการกำหนดค่าความปลอดภัยเพิ่มเติมสำหรับ Application PHP ของคุณที่ Host กับ Application Server Apache
มีสองวิธีในการตั้งค่าการกำหนดค่าความปลอดภัยหลักของคุณ:
- ทำการเปลี่ยนแปลงในไฟล์กำหนดค่าหลักของ Apache (httpd.conf)
- สร้างความพิเศษ.htaccessซึ่งมีคำสั่งการกำหนดค่าตั้งแต่หนึ่งคำสั่งขึ้นไปและวางไว้ภายใน Directory Application ของคุณ
คำสั่งสามารถแทนที่ชุดย่อยของการกำหนดค่าส่วนกลางของ Server สำหรับ Directory นั้นและ Directory ย่อยทั้งหมดได้สิ่งที่คุณสามารถใส่ลงในไฟล์นี้ได้ถูกกำหนดโดยคำสั่ง AllowOverride
อนุญาตแทนที่ใช้ได้เฉพาะใน < directory > ส่วนที่ระบุโดยไม่มีนิพจน์ทั่วไปเมื่อคำสั่งนี้ถูกตั้งค่าเป็นไม่มี -.htaccessไฟล์จะถูกละเว้นโดยสิ้นเชิงเมื่อคำสั่งนี้ถูกตั้งค่าเป็นทั้งหมดดังนั้นคำสั่งใดๆที่มี.htaccessอนุญาตให้ใช้บริบทใน.htaccessไฟล์.
มาตรวจสอบการกำหนดค่าความปลอดภัยทุกประเภทที่คุณสามารถใช้ได้เพื่อปกป้อง Application ของคุณ:
การตั้งค่าคำขอการรับรองความถูกต้อง
เพื่อตั้งค่าการรับรองความถูกต้องให้กับ Apache ของคุณApplicationหรือเพียงแค่แยกกDirectoryใน Application ของคุณให้ทำตามขั้นตอนต่อไปนี้
-
สร้างแฮชจากรหัสผ่านของคุณเพื่อที่คุณสามารถใช้อะไรก็ได้เครื่องมือ htpasswdหรือบริการออนไลน์ (เช่นhttps://www.web2generators.com/apache-tools/htpasswd-generator).
-
สร้างไฟล์ข้อความอย่างง่ายด้วยแฮชที่สร้างไว้ก่อนหน้านี้
-
คลิกการกำหนดค่าปุ่มสำหรับ Server ของคุณ
-
อัพโหลดไฟล์ที่สร้างขึ้นไปที่/var/www/webroot/ROOTโฟลเดอร์
-
ใน/etc/httpd/confโฟลเดอร์เปิดอยู่httpd.confไฟล์ (หรือ.htaccessหากคุณใช้) ให้ดำเนินการกำหนดค่าต่อไปนี้:
- การรับรองความถูกต้องสำหรับ Application ทั้งหมด- เพิ่มสตริงต่อไปนี้ในDirectoryดังแสดงในภาพด้านล่าง:
สำเนา
AuthName "Restricted area"
AuthType Basic
AuthBasicProvider file
AuthUserFile /var/www/webroot/ROOT/.htpasswd
Require valid-user
*การรับรองความถูกต้องสำหรับ Directory แยกต่างหาก- เพิ่มสิ่งต่อไปนี้ที่ตั้งสตริงที่ระบุเส้นทางไปยัง Directory ที่ต้องการ:
สำเนา
<Location /directory_path>
AuthName "Restricted area"
AuthType Basic
AuthBasicProvider file
AuthUserFile /var/www/webroot/ROOT/.htpasswd
Require valid-user
</Location>
6. บันทึกการเปลี่ยนแปลงและRestartServer อาปาเช่
บันทึก:ถ้าคุณใช้httpd.confไฟล์สำหรับตั้งค่าการกำหนดค่าความปลอดภัยคุณจะต้อง Restart Apache หลังจากทำการเปลี่ยนแปลงการกำหนดค่าทุกครั้งในกรณีของ.htaccessการใช้ไฟล์การเปลี่ยนแปลงที่ทำในไฟล์เหล่านี้จะมีผลทันทีเนื่องจากไฟล์เหล่านี้จะถูกอ่านในทุกคำขอ
ด้วยเหตุนี้ขณะเข้าถึง Application หรือ Directory ที่ได้รับการป้องกันผู้ใช้จะถูกขอให้ตรวจสอบสิทธิ์
การรักษาความปลอดภัยผ่านการกำหนดเกณฑ์
คุณสามารถรักษาความปลอดภัยให้กับ Application ของคุณผ่านการตั้งค่าการควบคุมการเข้าถึงส่วนใดส่วนหนึ่งของ Server ของคุณตามเกณฑ์เฉพาะ (เช่นชื่อ Host ของ Client หรือที่อยู่ IP)
การกำหนดค่าที่จำเป็นสามารถนำไปใช้ได้ด้วยความช่วยเหลือของจำเป็นต้องคำสั่งและเพื่อกำหนดนโยบายการเข้าถึงที่ซับซ้อนมากขึ้นสามารถใช้ร่วมกับ:
- ต้องการทั้งหมด- ชุดคำสั่งการอนุญาตซึ่งต้องไม่มีสิ่งใดล้มเหลวและอย่างน้อยก็มีหนึ่งคำสั่งที่จะสำเร็จ
- ต้องการใดๆ- ชุดคำสั่งการอนุญาตโดยที่ต้องมีอย่างน้อยหนึ่งรายการสำเร็จ
- จำเป็นต้องมีไม่มี- ชุดคำสั่งการอนุญาตโดยที่ไม่มีใครต้องสำเร็จ
นำทางไปยัง/etc/httpd/confโฟลเดอร์และเปิดไฟล์httpd.confไฟล์ (หรือ.htaccessหนึ่งรายการโดยตรงใน Directory เป้าหมาย)
- ในการตั้งค่าเกณฑ์การเข้าถึงตาม IP เพียงเพิ่มคำสั่งที่จำเป็นลงในDirectoryส่วน.
2. ตามตัวอย่างที่ซับซ้อนมากขึ้นคุณสามารถกำหนดค่านโยบายการเข้าถึงได้หลายเงื่อนไข (เช่นผ่านต้องการทั้งหมดdirective) และสำหรับโฟลเดอร์ Server เฉพาะ (เพียงเปลี่ยนส่วนที่ขีดเส้นใต้ในภาพด้านล่าง)
3. อย่าลืมบันทึกการเปลี่ยนแปลงและRestartServer Apache ของคุณเพื่อใช้การเปลี่ยนแปลง
บันทึก:การปฏิเสธการเข้าถึงผ่าน IP จะสมเหตุสมผลก็ต่อเมื่อคุณใช้Public IPคุณสมบัติ.
การกำหนดค่าโมดูล mod_security
mod_securityเป็นโมดูล Apache ที่มีประโยชน์อย่างยิ่งซึ่งมีความสามารถต่างๆเช่นการกรองอย่างง่าย, การตรวจสอบการเข้ารหัส URL และ Unicode, การตรวจสอบ, การป้องกันการโจมตีด้วยไบต์ null, การจำกัดหน่วยความจำในการอัปโหลด, การปกปิดข้อมูลระบุตัวตนของ Server, การรองรับ chroot ในตัวและอื่นๆอีกมากมาย
โมดูลนี้มีอยู่ใน Platform ตามค่าเริ่มต้นและสามารถกำหนดค่าได้ผ่านทาง/etc/httpd/conf.d/mod_security.confไฟล์.
ที่นี่คุณสามารถแก้ไขการกำหนดค่าเริ่มต้นหรือเพิ่มการกำหนดค่าของคุณเองได้
ตัวอย่างเช่นคุณสามารถเพิ่มบางอย่างพิเศษได้กฎความปลอดภัยของ Modโดยการอัพโหลดไปที่/etc/httpd/modsecurity.dโฟลเดอร์ (เช่นmodsecurity_crs_11_brute_force.conf).
กฎเกณฑ์ที่อัปโหลดไปที่modsecurity.dหรือเพื่อเปิดใช้งาน_กฎโฟลเดอร์จะถูกเปิดใช้งานโดยอัตโนมัติโดยไม่มีการตั้งค่าเพิ่มเติมใดๆสิ่งนี้ได้รับการกำหนดค่าโดย Parameter เริ่มต้นต่อไปนี้ใน/etc/httpd/conf.d/mod_security.confไฟล์:
สำเนา
Include modsecurity.d/*.conf
Include modsecurity.d/activated_rules/*.conf
ซ่อนเวอร์ชัน Server Apache
โดยปกติแล้วด้วยการกำหนดค่าเริ่มต้นเวอร์ชัน Server Apache จะแสดงต่อสาธารณะด้วยเหตุนี้ข้อมูลเกี่ยวกับเวอร์ชันของ Apache และระบบปฏิบัติการ/เวอร์ชันหรือแม้แต่รายละเอียดเกี่ยวกับโมดูล Apache ที่ติดตั้งไว้ก็สามารถนำมาใช้ในการโจมตีได้
เพื่อหลีกเลี่ยงปัญหานี้ Platform จะเพิ่มการกำหนดค่าต่อไปนี้ให้กับคุณโดยอัตโนมัติhttpd.confไฟล์:
- ปิดลายเซ็น Server- แสดงหน้า 404 แทนรายการ Directory และหน้าอื่นๆที่สร้างโดย Apache
- ผลิตภัณฑ์ ServerTokens- กำหนดส่วนหัวการตอบสนอง Apache Server HTTP กับแยงค่าส่วนหัวการตอบสนอง HTTP จะเป็นดังนี้ -Server: อาปาเช่

