Я бы хотел запустить веб-сервер для экспериментов. Я собираюсь использовать Мангуста потому что он выглядит легким и достаточно простым, чтобы понимать все, что он делает.
У меня есть ящик Debian, на котором он работает.
Мои вопросы
Желательно ли запускать веб-сервер от имени пользователя root? Если нет, то почему? (Как непривилегированные учетные записи могут прослушивать порты 80 443?)
Есть ли стандартный каталог для размещения "корня сайта" для обслуживания? Имеет ли значение, где это находится, с точки зрения безопасности?
Веб-сервер обычно началось как корень. Затем хороший веб-сервер изменит пользователя, от имени которого запускаются отдельные процессы. Таким образом вы сможете использовать стандартные порты.
Где разместить корень вашего документа, на самом деле не важно. Конечно, вам нужен доступ для записи в этот каталог (без root). Вы часто можете найти корень документа по умолчанию в /var/www
или /srv/www
.
PS: Я бы порекомендовал Apache, легкий или нет. Для его конфигурации доступно огромное количество информации, и его файлы конфигурации совсем несложно понять.
Повторяй за мной:
НИКОГДА не запускайте веб-сервер с правами root.
НИКОГДА не запускайте веб-сервер с правами root.
НИКОГДА не запускайте веб-сервер с правами root.
НИКОГДА не запускайте веб-сервер с правами root.
Это все равно что оставить свой дом незапертым и уехать в отпуск на 6 месяцев.
Что касается того, где разместить ваш веб-корень. Я рекомендую то, что вам подходит. Я большой поклонник размещать его где-нибудь НЕСТАНДАРТНОЕ просто потому, что он помогает защититься от всех различных скрипачей. (Все еще не делает вас безопасным, но помогает.)
Как уже говорили другие, вы не должны запускать веб-сервер с правами root. К сожалению, независимо от того, насколько безопасны ваш сервер или приложения, всегда есть (хороший) шанс, что существует угроза безопасности. Взлом с непривилегированной учетной записью - это плохо - разрешение root-доступа смертельно опасно..
Когда вы запускаете сервер, вы обычно переходите к полномочиям root с помощью sudo (sudo apache2ctl start
) а потом Apache привязывается к указанным портам, а затем возвращается к более низким разрешениям.
Из-за моего опыта работы с Mac и моей любви к удобочитаемости мои сайты расположены в /var/WebServer
. Внутри у меня default
и многие другие сайты, работающие как виртуальные хосты.
Об Apache широко говорят, и доступно ТОННЫ документации, лучший и самый простой из которых предоставляется (на мой взгляд) Slicehost (хотя это не относится к VPS). Я бы проконсультировался с их статьями, чтобы узнать, как быстро и безопасно настроить Apache.
Версия по умолчанию apache2
в репозитории Debian запускается как root, но порождает фактические процессы Apache как пользователь www-data
.
Я бы рекомендовал запустить экспериментальный сервер как виртуальную машину под Xen или KVM. Таким образом, вы начнете с полностью чистой среды, которую вы можете безопасно уничтожить, если у вас возникнут проблемы. Вы также можете изменить общесистемные настройки или установить программное обеспечение для тестирования в виртуальной машине, не испортив реальную систему.
Как сказал кто-то другой, никогда не запускайте веб-сервер под учетной записью root. К счастью, большинство веб-серверов сбрасывают привилегии учетной записи без полномочий root сразу после привязки к порту 80.
Другой способ справиться с этим - запустить программу веб-сервера на порту более 1024 и использовать интерфейс (например, varnish или nginx) для прослушивания порта 80 и перенаправления на внутренний веб-сервер.
Я должен согласиться с Манни в этом, apache - ваш лучший выбор для начала.
Что касается конкретных вопросов, которые вы задали:
Версия 1:
Версия 2: (моя любимая)
Рискуя повторить все вышесказанное: НИКОГДА НЕ ЗАПУСКАЙТЕ КАК ROOT :)
Вот как ты узнаешь.
Шаг 1. Установите сервер с настройками по умолчанию .. НИЧЕГО не придавайте ему значения.
Шаг 2. Подключите его к сети.
Шаг 3. Подождите 15 минут.
Шаг 4. Посмотрите, какой ущерб ему был нанесен.
========
Затем протрите его до полной переустановки. Затем найдите соответствующие рекомендации по безопасности для вашей ОС и веб-сервера. Сделайте то, что он говорит, подключите его и подождите час. Если он все еще в рабочем состоянии и его не взяли, то все в порядке. Какое-то время. ;)
Безопасность - это непрерывный танец. Так держать, и на твою ногу не наступят.
Удачи тебе. ;)