когда я должен использовать “apache: apache” или “nobody: никто” в файлах моего веб-сервера?
Вопрос
Предыстория: Я помню, как на моем старом месте работы администратор веб-сервера всегда заставлял меня изменять доступные по протоколу httpd каталоги загрузки файлов, чтобы они принадлежали apache: apache или nobody: nobody.
Он сказал, что это было сделано по соображениям безопасности.
Вопрос: Можете ли вы рассказать мне, каковы конкретно были последствия этого для безопасности?Также есть ли способ заставить apache запускаться как nobody: никто, и есть ли для этого последствия с точки зрения безопасности?
ТИА
Решение
Существует веская причина, предполагающая, что httpd (Apache) принадлежал root и также принадлежит группе root, и что в самом коде была обнаружена уязвимость, например, злоумышленник запросил URL-адрес длиннее, чем ожидалось, и произошла ошибка в сегменте httpd.Теперь этот эксплойт открыл root-доступ, что означает, что он контролирует систему, и, следовательно, злоумышленник в конечном итоге перехватит контроль и создаст хаос на коробке.
Это причина, по которой владение демоном httpd выполняется под управлением nobody: nobody или apache:apache.По сути, это превентивная мера, гарантирующая, что ни один эксплойт / уязвимость не откроет root-доступ.Представьте себе последствия для безопасности, если бы это произошло.
К счастью, теперь, в зависимости от дистрибутива Linux, вариантов BSD (OpenBSD/ FreeBSD/NetBSD) или коммерческих вариантов Unix, демон httpd запускается под управлением группы пользователей, которая имеет наименьшие привилегии.И более того, было бы с уверенностью сказать, что большая часть кода Apache была достаточно хорошо протестирована и стабильна.Около 49% серверов во всех доменах работают под управлением Apache.IIS от Microsoft работает на 29% доменов.Об этом сообщает сайт the netcraft survey здесь.
В другом контексте это показывает, что программа, работающая с наименьшими привилегиями, будет считаться "безопасной" и снижает любые возможные шансы эксплойтов и уязвимостей.
Другие советы
Это неправильный сайт для этого вопроса.Обычно вы бы не хотите, чтобы исходный код принадлежал тому же пользователю, что и Apache.В случае возникновения уязвимости безопасности в Apache или ваших серверных скриптах злоумышленник может злонамеренно изменить файлы вашего веб-сайта без повышения привилегий.
Единственным исключением будут каталоги загрузки файлов, как вы сказали.В этом случае вы хотите, чтобы Apache внес изменения в этот каталог.