Страница 1 из 1
Debian Hosting (apache2 vhost)
Добавлено: 2009-02-01 21:48:34
Hazzard
Добрый день, уважаемый ALL.
У меня стоить на машине Debian с поднятым Apache2+vhost/php/perl и proftpd.
Подскажите как ограничить доступ из папки во внешнюю ФС? Например:
Папка пользователя хостинга (для хранения собственно сайта) /var/www/hosting/username/htdocs
Пользователь может создавать и изменять файлы на своё усмотрение. Но если пользователь захочет он может создавать папки и выше этой папки. Тoесть например в /var/www/hosting.
Как ограничить виртуальный хост на папку /var/www/hosting/username ?
Надеюсь понятно написал?
Зарание спасибо всем ответившим.
Re: Debian Hosting (apache2 vhost)
Добавлено: 2009-02-01 22:22:47
~>cerber<~
php: open_basedir
а лучше средствами фс, ибо open_basedir есть только в php, perl,python под угрозой, может есть какие модули, я не видел..
Re: Debian Hosting (apache2 vhost)
Добавлено: 2009-02-02 22:34:45
paix
~>cerber<~ писал(а):php: open_basedir
а лучше средствами фс, ибо open_basedir есть только в php, perl,python под угрозой, может есть какие модули, я не видел..
каким образом ограничить php кроме open_basedir ?
Re: Debian Hosting (apache2 vhost)
Добавлено: 2009-02-03 1:45:16
~>cerber<~
ну банально chroot http-daemon
Re: Debian Hosting (apache2 vhost)
Добавлено: 2009-02-03 12:53:59
paix
вообщето, chroot первоначально создавался не для обеспечения безопасности. Там есть очень очень много ньюансов, а кроме того это все значительно усложняет настройку и сапорт, настолько, что я бы даже не рекомендовал такое делать.
для линукса может помочь selinux, также если говорить о хостинге, то можно поместить сам хостинг в контейнер openvz (требует установки модифицированного ядра) - вот это уже будет полноценное решение (особенно, если на сервере используются и нехостинговые службы.)
также, cgi (perl,python), crontab, shell для хостинга лучше не использовать
для php - обязательно openbasedir и набор disabled_functions типа exec, system и прочие.
ну и обязательно, last updates on system.
Re: Debian Hosting (apache2 vhost)
Добавлено: 2009-02-03 12:59:18
paix
to Hazzard, если вы имеете ввиду, что пользователь может по фтп видеть все папки, то вам нужно выставить пару настроек в proftpd, кажется
Re: Debian Hosting (apache2 vhost)
Добавлено: 2009-02-04 2:46:54
Hazzard
paix писал(а):to Hazzard, если вы имеете ввиду, что пользователь может по фтп видеть все папки, то вам нужно выставить пару настроек в proftpd, кажется
нет, не то ... первый ваш ответ сильней помог..
решение:
Добавляем в файл вхоста в раздел папки примерно следующее:
Код: Выделить всё
php_flag engine on
php_admin_value open_basedir /var/www/hosting/$host/htdocs
php_admin_value upload_tmp_dir /var/www/hosting/$host/tmp
php_admin_value max_execution_time 10
php_admin_value disable_functions exec,system,passthru,popen
и пхп ограничен ..
Осталось найти такое же решение для перла.
Re: Debian Hosting (apache2 vhost)
Добавлено: 2009-02-04 13:26:53
paix
для cgi (perl) таких решений нет ( suexec само собой) . Тут можно уповать только на силу unix permissions. В первую очередь, хочу обратить внимание, что конфиги системы являются малоценными по сравнению с данными пользователей, т.е. на хомы пользователей должны стоять такие права, чтобы чужой перл не мог их прочитать.
Во вторую очередь, поскольку, всеже, из под перл просматривается вся система (согласно unix permissions) то я рекомендовал полностью отключить его (cgi, shell). Это не такой обременительный ход как может казаться, особенно если это не шаредхостинг.
http://reki.ru/massvirthosting_php.html
для php - побольше функций можно добавить в disabled, и главное, наблюдайте за debian-security-announce, php надо обновлять как только так сразу, ибо иногда через дыры в пхп, обходят openbasedir. Противостоять этому помогают disabled functions.
Также, неплохо бы выставить переменные php.ini:
register globals off
url_fopen off
magic_quotes
etc...
+ прикрутить mod_security который блокирует львиную долю дряни.
PS. единственный момент который я не знаю пока как "прямо" решить - это то что в mod_php файлы создаются от владельца веб сервера (www\apache) и потом юзер их не может поменять. Существуют кастыли типа suiddir (для линукса идет сторонним патчем), которые довольно не стабильны и предоставляют потенциальную угрозу. Другой вариант это по крону менять рекурсивно права на владельца (тоже кастыльно..)
Если кто-то знает решение этой проблемы (без внедрения suexec\cgi) - поделитесь пож.