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

Безопасный сервер Linux по разрешениям dir

Я использую php на сервере Linux / Apache. У меня есть три типа каталогов, например

|_ Writeale Directory
|_ PHP Files 
|_ Image Files

Записываемый каталог будет использоваться только PHP для записи некоторых текстов, изображений ... Файлы PHP, выполняемые сервером и возвращающие коды HTML, Каталоги файлов изображений содержат только изображения, такие как jpeg gif swf ....

Какие разрешения необходимы для каждого каталога? Какое разрешение по умолчанию для каталога (созданного FTP или PHP)? Значение моего сервера по умолчанию - 755. Это безопасно?

Влияют ли разрешения на производительность сервера?

Вы не можете разработать модель безопасности, не зная, какие объекты должны иметь контролируемый доступ, и каким пользователям какой доступ требуется. Но вы не упомянули, как (и, что более важно, кем) файлы развертываются / обновляются. Вы также не указали, кому принадлежат файлы / каталоги - в отсутствие этого "0755" совершенно бессмысленно.

Неявно, все файлы должны быть доступны для чтения uid веб-сервера, если PHP работает как uid веб-сервера. Но есть и другие способы управления взаимодействием между PHP-скриптами и файлами (suPHP, safe_mode).

Какие разрешения необходимы для каждого каталога?

Правильные - точнее сказать невозможно.

Что такое разрешение по умолчанию для каталога (созданного FTP или PHP)?

Это зависит от того, как вы настроили PHP, FTP, вашу операционную систему и систему контроля разрешений.

Значение моего сервера по умолчанию - 755. Это безопасно?

Возможно нет. Разрешение исполняемых файлов в корне вашего документа опасно. Таким образом обеспечивается прямой доступ к загруженным (пользователем) файлам.

Очень общий обзор:

  • каталоги, в которые пользователи (например, PHP) могут записывать данные, должны находиться вне вашего httpd documentroot.
  • каталоги, которые содержат контент, который должен читать apache, требуют доступа на чтение всего мира, и не более того, т.е. 0755 более чем достаточно.
    Каталоги требуют доступа eXecute; файлы НЕ должны иметь разрешений на выполнение.
    Нет, тоже не файлы PHP.
  • Разрешения по умолчанию определяются umask, установленным для пользователя, от имени которого запускается apache.
  • загруженные файлы должны быть изучены и проверены, прежде чем они будут доступны для загрузки.

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

Во-первых, разрешения имеют какое-либо влияние на производительность. Если быть более точным, разрешения проверяются каждый раз, какие они могут быть определены, без ограничений производительности. Вы должны установить максимально ограничительные разрешения из соображений безопасности. Если ваш веб-сервер обращается к вашим файлам с вашей учетной записью, измените доступ к каталогу на 700. Если веб-сервер обращается к вашим файлам с пользователем www-data, вы можете изменить группу или другую для доступа. Вы не даете нам информацию, но веб-серверу нужно писать в этих каталогах? Или просто читаете?

Разрешения по умолчанию определяются параметром umask в вашей оболочке, на вашем FTP-сервере или в вашем PHP.