Правильно налаштувати віртуальний хост apache з кількома користувачами


15

Заздалегідь дякую за будь-яку допомогу, яку ви можете надати. Я навчив себе використовувати linux (ubuntu), apache, віртуальні хости та кілька біт щодо безпеки, хоча я все ще без проблем ставлю їх.

Я також навчився нелегко від помилок, які були зроблені в минулому, щодо неправильного налаштування облікових записів користувачів та сайтів / віртуальних хостів. Я сш на сервер як root (я знаю, дуже погано), і створив усі віртуальні хости та файли вручну, таким чином, всім належав root. У мене була стара версія версії Joomla, що експлуатується, і зловмисний спам-код, вставлений у всі інші мої віртуальні хости.

Я зараз переходжу на новий сервер і шукаю правильні кроки щодо налаштування віртуальних хостів та акаунтів користувачів, які можуть отримати доступ до них. Оскільки ми використовуємо програмне забезпечення сторонніх розробників, нам за потреби потрібен хтось інший, щоб перейти на сайт, щоб дослідити файли їх веб-сайтів.

Наш поточний сервер - версія 10.04, однак новий сервер - версія 12.04. Усі файли веб-сайтів налаштовано під

/home/www/site1.com

/home/www/site2.com

/home/www/site3.com

тощо

Коротше кажучи, я здогадуюсь, що це те, що я після цього.

  1. Як правильно встановити віртуальний хост і користувача, щоб він мав доступ лише до власних файлів, а не до будь-якого іншого віртуального хоста на сервері. Наприклад, якщо цей сайт експлуатується зі шкідливим кодом, він не може заразити інші сайти на сервері

  2. Як би я налаштував користувачів так, щоб вони могли лише переходити у файли, які вони задавали, і не отримувати доступу до жодного з інших сайтів.

Як уже згадувалося раніше, є численні статті, в яких детально розповідається про те, як зробити будь-який із цих кроків, але нічого, що їх зближує.

Дуже цінуй допомогу, яку може запропонувати кожен. Будь ласка, не соромтеся запитати будь-яку додаткову інформацію, яка може вам знадобитися, щоб дати пораду. В даний час я слідую підручниками по налаштуванню chroot, однак боюся, що я не роблю це правильно, оскільки під час доробок я виявив кілька невідповідностей. Я також розслідую джейлкіт.

Відповіді:


6

Оскільки питання є головним результатом пошуку в google, коли його запитують "віртуальний окремий користувач віртуального хоста", я хотів би дати більш детальну відповідь на основі цієї відповіді . Моя відповідь не охоплює шаблони використання PHP та CGI (ви б використовували suPHP). Він фокусується на PHP при використанні в якості модуля apache.

Можна використовувати модуль apache apache2-mpm-itk . Він доступний для поточної версії apache 2.4. Він поставляється з директивою AssignUserID. Ця директива визначає користувача та групує віртуальний запит хоста. Це приклад конфігурації сайту apache, з якою я закінчив:

<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>

Звичайно, це лише покращує безпеку до тих пір, поки окремі DocumentRoots є власниками відповідних користувачів та не мають групової доступності. Для подальшої безпеки, пов’язаної з PHP, сценарії знаходяться у в'язниці в DocumentRootобмеженні open_basedir. Щодо доступу до бекенд-файлів, я віддаю перевагу SFTP з chroot .

Примітка: apache2-mpm-itk на даний момент несумісний з модулем http2 модуля Apache.


1

Я сам не вважаю це відповіддю на ваше запитання. Але оскільки я поки не можу коментувати, я мушу писати в області "відповіді". Я сезонно займаюся веб-керуванням, один із способів тестувати та спробувати речі безпечним способом - це налаштувати тестове середовище у віртуальній машині (тобто VirtualBox) або на «старому» настільному комп’ютері. Одна з найпоширеніших проблем адміністраторів веб-хостів-початківців - зрозуміти, як працюють програми веб-серверів. У цьому випадку я припускаю, що вам потрібно зрозуміти, як працює Apache, і принаймні зрозуміти файли конфігурації. Я вважаю, що Webmin - це дуже корисний інструмент - для новачків - для управління Apache та іншими службами. Вам доведеться витратити деякий час, щоб випробувати речі в тестовому середовищі, щоб вони стали для вас зрозумілішими.

Повертаючись до вашого питання, я думаю, що відповідь цілком може бути статтею з підручника чи невеликою книжкою. Перегляньте ці статті для початку:

https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

http://www.servermom.org/build-ubuntu-server-a-complete-guide/


Спасибі біокіберману. Це в основному основні кроки, які я виконую, і я досить добре знайомий. Єдина відмінність полягала в тому, що я не передавав кожен веб-сайт іншому користувачеві, що я намагаюся спробувати далі, однак чи захищає це папки virtualhosts одна від одної? Здається, Jailkit є частиною рішення, але я не впевнений на 100%. У минулому я грав з webmin, тому перегляну його і побачу, чи допоможе це мені в будь-якому з питань.
користувач249729
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.