แก้ไข # 2 23 กรกฎาคม 2558: ค้นหาคำตอบใหม่ที่ระบุรายการความปลอดภัยที่สำคัญที่ไม่ได้รับในการตั้งค่าด้านล่างหรืออาจให้เหตุผลที่จะเชื่อว่าทุกอย่างครอบคลุม
แก้ไข # 3 29 กรกฎาคม 2015: ฉันกำลังมองหาการกำหนดค่าผิดพลาดโดยเฉพาะอย่างยิ่งโดยไม่ได้ตั้งใจอนุญาตให้บางสิ่งบางอย่างที่สามารถใช้ประโยชน์เพื่อหลีกเลี่ยงข้อ จำกัด ด้านความปลอดภัยหรือแย่ลง แต่ยังเปิดกว้าง
นี่คือการตั้งค่าโฮสติ้งแบบหลายไซต์ / แชร์และเราต้องการใช้อินสแตนซ์ Apache ที่ใช้ร่วมกัน (เช่นทำงานภายใต้บัญชีผู้ใช้หนึ่งบัญชี) แต่ด้วย PHP / CGI ที่ทำงานในฐานะผู้ใช้ของแต่ละเว็บไซต์เพื่อให้แน่ใจว่าไม่มีไซต์ใด ๆ ตรวจสอบให้แน่ใจว่าไม่มีอะไรพลาด (เช่นถ้าเราไม่รู้เกี่ยวกับการป้องกันการโจมตี symlink)
นี่คือสิ่งที่ฉันมี:
- ตรวจสอบให้แน่ใจว่าสคริปต์ PHP ทำงานเป็นบัญชีผู้ใช้และกลุ่ม Linux ของเว็บไซต์และถูกจำคุก (เช่นใช้ CageFS) หรืออย่างน้อยก็ถูก จำกัด อย่างถูกต้องโดยใช้สิทธิ์ระบบไฟล์ Linux
- ใช้ suexec เพื่อให้แน่ใจว่าสคริปต์ CGI ไม่สามารถทำงานได้ในฐานะผู้ใช้ Apache
- หากต้องการการสนับสนุนด้านเซิร์ฟเวอร์ (เช่นในไฟล์ shtml) ให้ใช้
Options IncludesNOEXEC
เพื่อป้องกัน CGI ไม่ให้สามารถทำงานได้เมื่อคุณไม่คาดหวังให้ใช้ (แม้ว่าจะไม่ควรกังวลมากนักหากใช้ suexec) - มีการป้องกันการโจมตี symlink ในสถานที่เพื่อให้แฮกเกอร์ไม่สามารถหลอก Apache ให้แสดงไฟล์ของเว็บไซต์อื่น ๆ ให้เป็นข้อความธรรมดาและเปิดเผยข้อมูลที่เป็นประโยชน์เช่นรหัสผ่านฐานข้อมูล
- กำหนดค่า
AllowOverride
/AllowOverrideList
อนุญาตเฉพาะคำสั่งที่แฮ็กเกอร์ไม่สามารถใช้ประโยชน์ได้ ฉันคิดว่านี่เป็นเรื่องน่ากังวลน้อยกว่าหากรายการด้านบนทำอย่างถูกต้อง
ฉันจะไปกับ MPM ITK ถ้ามันไม่ช้าและไม่ได้ทำงานในฐานะรูท แต่เราต้องการใช้ Apache ที่ใช้ร่วมกันโดยเฉพาะ
ฉันพบhttp://httpd.apache.org/docs/2.4/misc/security_tips.htmlแต่ไม่ครอบคลุมในหัวข้อนี้
หากมีประโยชน์ที่จะรู้เรากำลังวางแผนที่จะใช้ CloudLinux กับ CageFS และ mod_lsapi
มีอะไรอีกบ้างที่จะต้องทำหรือรู้เกี่ยวกับ?
แก้ไข 20 กรกฎาคม 2558: ผู้คนส่งโซลูชันทางเลือกที่ดีซึ่งมีค่าโดยทั่วไป แต่โปรดทราบว่าคำถามนี้มีจุดมุ่งหมายเพียงเกี่ยวกับความปลอดภัยของการตั้งค่า Apache ที่ใช้ร่วมกัน มีบางสิ่งที่ไม่ได้กล่าวถึงข้างต้นซึ่งทำให้ไซต์หนึ่งสามารถเข้าถึงไฟล์ของไซต์อื่นหรือประนีประนอมเว็บไซต์อื่นได้หรือไม่?
ขอบคุณ!