Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Область видимости для PHP.
Форумы портала PHP.SU » Серверное администрирование » Администрирование *nix » Область видимости для PHP.

Страниц (1): [1]
 

1. ganers - 10 Сентября, 2010 - 11:53:34 - перейти к сообщению
Имеется сервер на ubuntu, на котором стоит Apache2 и PHP5.3, стоит панель управления хостингом ISPConfig. В созданом через панель сайте (PHP включен как FastCGI) я могу использовать команды линукс в обратных апострофах. Если я выполняю такой код
, то соответственно получаю содержимое файла в браузере. В чем собственно вопрос! Должен вообще быть такой доступ у скриптво (доступ к просмотру корневых директорий linux-а), если нет, то как его закрыть, или как отключить возможность использования команд в php???
За ранее всем благодарен за ответы!!!

P.s. В Линуксе Новичек.
2. JustUserR - 10 Сентября, 2010 - 14:22:32 - перейти к сообщению
ganers пишет:
Должен вообще быть такой доступ у скриптво (доступ к просмотру корневых директорий linux-а), если нет, то как его закрыть, или как отключить возможность использования команд в php???
Возможность обращения из PHP-скрипта к элементам файловой системы зависит от настройки прав доступа для этих элементов - а также от сопсоба подключения Apache и инциализации интерпретирующих процессов По умолчанию PHP-скрипты запускаются от имени пользователя www-data которые соответствуюет дочерним процессам обслуживающего web-серверу - и получают возможность доступа по некоторой операции ко всем ресурсам для которых предусмотрено обращение от данного пользователя В частности утилиты suexec и sudo позволяют осуществлять запуск CGI-скриптом от некоторого специализированного пользователя - это предоставляет возможность уменьшить общие права доступа ко всем ресурсам до минимально-допустимых
Кроме того CGI-скрипты и PHP-скриаты в частности предоставляют собой достаточно различные объекты - в частности для CGI-скрипта действуют только ограничения предоставляемые ОС и web-сервером - в то время как для PHP-скриптом можно установить отдельные параметры в конфигцрационном файле которые обрабатываются интерпретатором и позволяют запретить некоторые функции
3. ganers - 13 Сентября, 2010 - 07:40:52 - перейти к сообщению
А можно все тоже самое только вкратце и подытоженное? А то я недопонимаю как все таки должно работать и, что мне необходимо сделать!?

За ранее благодарен!
4. JustUserR - 13 Сентября, 2010 - 12:35:01 - перейти к сообщению
ganers пишет:
А можно все тоже самое только вкратце и подытоженное? А то я недопонимаю как все таки должно работать и, что мне необходимо сделать!?
За ранее благодарен!
Если рассматривать ваш вопрос кратко то можно сделать следующие выводы - для того чтобы обеспечить достаточную безопасности web-сайтов находящихся к группе каталогов принадлежащих одному системному пользователю - необходимо произвести достаточное разделение этих каталогов с точки зрения управляющего ими пользователя Для начала вы можете создать набор FTP-пользователей с указанием отдельного каталога в качестве корневой директории и блокировки перехода на верхний уровень - тем не менее пока что клиент имеет возможность обращаться к родительским ресурсам путем использования CGI-скрипта Интерфейс CGI в чистом виде не предоставляет каких-либо разграничений доступа для выполняющихся программ - поэтому по умолчанию все CGI-скрипты на ваших виртуальных хостах будут иметь достаточные права для чтения и модификации определенных файлов - а есмли установить для этих файлов более низкие права доступа то будет невозможно прочитать их даже из оригинального виртуального хоста
В общем виде задача ваша решается благодаря разграничению системных пользователей для каждой независимой директории - и использования смежных групп пользователя и модуля suexec - это дает возможность установить минимальные права на все ресурсы и при этом CGI-скрипту будет запускаться от имени вашего пользователя и поэтому будут иметь возможность доступа к нужным файлам - а доступ к другим виртуальным хостам будет ограниченин В то же время сервер Apache будет иметь все привелегии для чтения содержимого web-ресурсов - а все исполняющиеся действенные перенаправления как дочерние процессы будут иметь уже низкий уровень доступа
ИТОГ Тем не менее более просто огранизовать другой вариант - он заключается в том что вы запрещаете редактирования директив Apache в дочерних каталогах по пути наследования параметров - и в то же время запрещаете собственную конфигурацию alias-ов и действенных перенаправлний и отключаете CGI-скрипты - таким образом пользователи смогут использовать только установленный вами PHP-интерпретатор без подмены файла конфигурации - а это позволяет явно указать значения директивы open_basedir для блокировки перехода в родительскому каталогу
5. ganers - 14 Сентября, 2010 - 09:46:47 - перейти к сообщению
Спасибо за помощь. Тяжеловато все это понять так сразу.
В общем суть я понял, но сделал так:
включил режим safe_mode в php.ini, а для своего аккаунта в панели добавил директиву к апаче php_admin_value safe_mode off. Теперь я со своего аккаунта могу использовать комманды а остальные немогут.
JustUserR Если незатруднит, можешь объяснить для чайника каким образом работает suEcex и suPHP. В панели ИСПКонфиг для каждого аккаунта можно выбирать опции PHP (CGI, FastCGI, Mod-PHP, suPHP) и для всех аккаунтов можно активировать suExec. Но я непонимаю до конца как это работает. То есть я методом тыка выяснил что пользователи не имеют доступа к каталогам других пользователей, но они имеют доступ к корню ОС. Может есть что то понятное почитать, посоветуй пожалуйсто!
6. JustUserR - 14 Сентября, 2010 - 13:25:02 - перейти к сообщению
ganers пишет:
Спасибо за помощь. Тяжеловато все это понять так сразу
Пожалуйста! Использование модулей suexec и suphp и предлагаемый ими уровень безопаснотси реализуется с помощью средств ОС по управлению привелегиями доступа - поэтому для изучения этого вопроса необходимо смотреть литературу по самому *nix
ganers пишет:
JustUserR Если незатруднит, можешь объяснить для чайника каким образом работает suEcex и suPHP
Суть режима suexec заключается в том что исполняемый CGI-скрипт запускается с переназначенным эффективным идентификатором пользователя - это означает что такой процесс будет иметь привелигии аналогичные системному пользователю которому принаджелит файл с CGI-скриптом Таким образом при использовании режима suexec каждый из запускаемых CGI-скриптов будет работать от имени его владельца - соответственно он будет иметь полные права на ресурсы принадлежащие данному пользователю в том числе и смену аудита Это позволяет устанавливать на все файлы и директории минимальные права по следующей схеме - каждый пользователь имеет доступ к своим файлам в запускаемых CGI-скриптах и соответственно может установить для права доступа типа 0700 - благодаря этому привелегиями доступа к директории виртуального хоста обладает только сам пользователь и его процессы Серсис apache в таком случае может работать от имени суперпользователя что позволяет ему считывать файлы по всем путям - но в этом же время все дочернгие процессы будут инициироваться от имени соответствующих пользователей по действенному перенаправлению поэтому уровень безопасности будет в значительной мере высоким
Режим suphp работает аналогично за исключением того что предоставляет интерфейс только для интерпретатора PHP-скриптом - а также содержит несколько дополнительных опций по ограничению безопасности
7. ganers - 17 Сентября, 2010 - 05:20:53 - перейти к сообщению
Большое Спасибо за помощ!!! Улыбка
8. JustUserR - 17 Сентября, 2010 - 14:02:57 - перейти к сообщению
ganers пишет:
Большое Спасибо за помощ!!!
Пожалуйста! Вы можете посмотреть дополнительную информацию по вопросу запуска CGI-приложений в режиме переключения эффекетивным пользователей в этих источниках - http://www[dot]oglib[dot]ru/apman/mod/mod_suexec[dot]html и http://www[dot]oglib[dot]ru/apman/suexec[dot]html

 

Powered by ExBB FM 1.0 RC1