Я налаштовую веб-сервер, на якому розміщуватимуться різні веб-сайти як Apache VirtualHosts, кожен з них матиме можливість запускати сценарії (в першу чергу PHP, інші можливості).
Моє запитання полягає в тому, як я ізолюю кожну з цих VirtualHosts від інших і від решти системи? Я не хочу, щоб, наприклад, веб-сайт X читав конфігурацію веб-сайту Y або будь-який із "приватних" файлів сервера.
На даний момент я встановив VirtualHosts за допомогою FastCGI, PHP та SUExec, як описано тут ( http://x10hosting.com/forums/vps-tutorials/148894-debian-apache-2-2-fastcgi-php-5-suexec -easy-way.html ), але SUExec лише заважає користувачам редагувати / виконувати інші файли, крім власних - користувачі все ще можуть читати конфіденційну інформацію, таку як конфігураційні файли.
Я думав про видалення глобального дозволу читання для всіх файлів на сервері, оскільки це дозволило б виправити вищевказану проблему, але я не впевнений, чи зможу це безпечно зробити, не порушуючи серверну функцію.
Я також розглядав використання chroot, але, схоже, це можна зробити лише на сервері, а не на основі віртуального хоста.
Я шукаю будь-які пропозиції, які будуть ізолювати мої VirtualHosts від решти системи.
PS Я запускаю сервер Ubuntu 12.04
Мій ВІДПОВІДЬ: Я закінчив майже дотримуючись моєї поточної конфігурації, але робив тюрьму chroot для всіх віртуальних хостів, наприклад, маючи в'язницю chroot, /var/www
а потім маю всі дані користувачів у папках, кожен з дозволами групи / інші r / w / x інвалід. Цей варіант був бажаним, особливо тому, що він можливий без будь-яких змін вихідного коду.
Я вибрав відповідь @Chris, тому що вона була ретельно написана, а також вважалася FTP та SELinux
mod_userdir
пропонується віртуальний хостинг окремих доменів. Крім того, я маю занепокоєння щодо безпеки в частині ізоляції, оскільки я не в змозі знайти нічого про це між каталогами користувачів в Apache. Це, здається, не пропонує цю функцію.