2009-12-04 7 views
0

Справочная информация: Я помню на своем старом рабочем месте, как администратор веб-сервера всегда заставлял меня изменять каталоги для загрузки файлов с помощью httpd, чтобы они принадлежали apache: apache или nobody: nobody.Когда я должен использовать «apache: apache» или «nobody: nobody» в моих файлах веб-сервера?

Он сказал, что это было из соображений безопасности.

Вопрос: Можете ли вы рассказать мне, какие конкретно были последствия для безопасности этого? Также есть способ заставить apache работать как никто: никто, и есть ли последствия для безопасности для этого?

ТИА

ответ

2

Существует веская причина, предполагающая, что httpd (Apache) принадлежит root и принадлежит к корневому серверу также и что существует уязвимость, обнаруженная в самом коде, например, злоумышленник запросил URL, который больше, чем ожидалось, и httpd seg-fault. Теперь этот эксплойт обнаружил корневой доступ, что означает, что он имеет контроль над системой, и, следовательно, злонамеренный пользователь в конечном итоге захватит контроль и создаст хаос на ящике.

Это причина, по которой право собственности на демон httpd не работает никому: никто или apache: apache. Это эффективно превентивная мера для обеспечения того, чтобы никакая эксплойт/уязвимость не обеспечивала доступ root. Представьте себе последствия для безопасности, если это произойдет.

К счастью, теперь, в зависимости от дистрибутива Linux, вариантов BSD (OpenBSD/FreeBSD/NetBSD) или коммерческих Unix-вариантов, демон httpd работает под группой пользователей, которая имеет наименьшие привилегии. И, кроме того, было бы безопасно сказать, что много кода Apache хорошо проверено и стабильно. Около 49% серверов во всех доменах работают с Apache. Microsoft IIS работает в 29% доменов. Это соответствует поисковому сайту Netcraft here.

В другом контексте это показывает, что наличие программы с минимальными привилегиями будет считаться «безопасным» и смягчает любые возможные возможности эксплойтов, уязвимостей.

+0

Кстати, я должен был указать, что это не должно быть на SO, возможно, serverfault.com или superusers.com будет более подходящим сайтом. Теперь, когда я прочитал ответ Мэтью после того, как я разместил свой ... – t0mm13b

1

Это неправильный сайт для этого вопроса. Обычно вы бы не хотите, чтобы исходный код принадлежал тому же пользователю, что и Apache. Если возникает ошибка безопасности в Apache или на ваших серверных сценариях, злоумышленник может злонамеренно изменять файлы вашего веб-сайта без повышения привилегий.

Единственное исключение - это каталоги для загрузки файлов, как вы сказали. В этом случае вы хотите, чтобы Apache вносил изменения в этот каталог.

+0

Спасибо за ответ. Об этом, как о неправильном сайте, я обычно размещаю здесь и далее в serverfault, потому что, похоже, там гораздо меньше обычных пользователей. – dreftymac

+0

@dreftymac: Перекрестки не были хорошей идеей; ни на форумах, ни здесь на SO, SF & Co., так как наиболее вероятно будет 2 независимых потока без какого-либо взаимодействия между ними. Решите, чтобы одна община спросила и сохранила ваш вопрос там, в следующий раз, возможно, выбрав другой. Но, пожалуйста, остановите перекрестный пропуск. Это пустая трата ресурсов. – Energiequant

+0

Хорошо, я не буду. – dreftymac