Назад | Перейти на главную страницу

Основные вопросы о запуске веб-сервера

Я бы хотел запустить веб-сервер для экспериментов. Я собираюсь использовать Мангуста потому что он выглядит легким и достаточно простым, чтобы понимать все, что он делает.

У меня есть ящик Debian, на котором он работает.

Мои вопросы

Веб-сервер обычно началось как корень. Затем хороший веб-сервер изменит пользователя, от имени которого запускаются отдельные процессы. Таким образом вы сможете использовать стандартные порты.

Где разместить корень вашего документа, на самом деле не важно. Конечно, вам нужен доступ для записи в этот каталог (без 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 - ваш лучший выбор для начала.

  • Он содержит наибольшее количество документации и помощи для новых пользователей.
  • Он поставляется с разумными настройками по умолчанию и пакетами от Debian, которые они хорошо поддерживают и обеспечивают быстрое обновление безопасности.
  • Большинство людей где-то используют apache, поэтому знание основ может быть очень полезным.
  • Apache - это в значительной степени веб-сервер швейцарского армейского ножа, большинство других предназначены для работы в определенных обстоятельствах и / или очень хорошо работают с меньшими ресурсами. Имо, это повод изучить это раньше других, но некоторые могут не согласиться.

Что касается конкретных вопросов, которые вы задали:

  • Вы должны запустить свой веб-сервер как root, чтобы он мог привязаться к порту 80. Обычно вы настраиваете сервер так, чтобы он отбрасывал эти привилегии и запускался от имени другого пользователя после его привязки к порту (в debian apache этот пользователь является www-пользователем, и это установлено по умолчанию). Программы, которые запускают свои собственные веб-серверы для определенных приложений, в которых отсутствует эта функциональность, обычно проксируются через более крупный веб-сервер, такой как apache или nginx.
  • / var / www - это расположение по умолчанию в Debian для корня веб-сайта. Это должно подойти для любого выбранного вами веб-сервера.

Версия 1:

  • создать другого пользователя в системе без особых привилегий (даже без входа в систему)
  • в сценарии запуска веб-сервера выполните su my.web.server.sh (как пример)
  • создать папку (например, в домашней папке нового пользователя) и передать ее новому пользователю
  • предоставьте себе права на запись в эту папку
  • установите эту новую папку как веб-корень

Версия 2: (моя любимая)

  • sudo apt-get install apache2 / httpd
  • у вас есть / var / www / [html] в качестве корневого веб-сайта. Это должно позаботиться обо всем за вас - создать пользователя, правильные разрешения для папок и т. д.

Рискуя повторить все вышесказанное: НИКОГДА НЕ ЗАПУСКАЙТЕ КАК ROOT :)

Вот как ты узнаешь.

Шаг 1. Установите сервер с настройками по умолчанию .. НИЧЕГО не придавайте ему значения.

Шаг 2. Подключите его к сети.

Шаг 3. Подождите 15 минут.

Шаг 4. Посмотрите, какой ущерб ему был нанесен.

========

Затем протрите его до полной переустановки. Затем найдите соответствующие рекомендации по безопасности для вашей ОС и веб-сервера. Сделайте то, что он говорит, подключите его и подождите час. Если он все еще в рабочем состоянии и его не взяли, то все в порядке. Какое-то время. ;)

Безопасность - это непрерывный танец. Так держать, и на твою ногу не наступят.

Удачи тебе. ;)