Debian Hosting (apache2 vhost)

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Hazzard
сержант
Сообщения: 265
Зарегистрирован: 2009-02-01 21:22:36
Откуда: Москва
Контактная информация:

Debian Hosting (apache2 vhost)

Непрочитанное сообщение Hazzard » 2009-02-01 21:48:34

Добрый день, уважаемый ALL.

У меня стоить на машине Debian с поднятым Apache2+vhost/php/perl и proftpd.
Подскажите как ограничить доступ из папки во внешнюю ФС? Например:

Папка пользователя хостинга (для хранения собственно сайта) /var/www/hosting/username/htdocs
Пользователь может создавать и изменять файлы на своё усмотрение. Но если пользователь захочет он может создавать папки и выше этой папки. Тoесть например в /var/www/hosting.
Как ограничить виртуальный хост на папку /var/www/hosting/username ?

Надеюсь понятно написал?

Зарание спасибо всем ответившим.
Debian, php/mysql и другой бред...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
~>cerber<~
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-06-23 0:58:32
Откуда: [UKRAINE]
Контактная информация:

Re: Debian Hosting (apache2 vhost)

Непрочитанное сообщение ~>cerber<~ » 2009-02-01 22:22:47

php: open_basedir
а лучше средствами фс, ибо open_basedir есть только в php, perl,python под угрозой, может есть какие модули, я не видел..
;aka coolchevy
live free or die;

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Debian Hosting (apache2 vhost)

Непрочитанное сообщение paix » 2009-02-02 22:34:45

~>cerber<~ писал(а):php: open_basedir
а лучше средствами фс, ибо open_basedir есть только в php, perl,python под угрозой, может есть какие модули, я не видел..
каким образом ограничить php кроме open_basedir ?
With best wishes, Sergej Kandyla

Аватара пользователя
~>cerber<~
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-06-23 0:58:32
Откуда: [UKRAINE]
Контактная информация:

Re: Debian Hosting (apache2 vhost)

Непрочитанное сообщение ~>cerber<~ » 2009-02-03 1:45:16

ну банально chroot http-daemon
;aka coolchevy
live free or die;

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Debian Hosting (apache2 vhost)

Непрочитанное сообщение paix » 2009-02-03 12:53:59

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

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

также, cgi (perl,python), crontab, shell для хостинга лучше не использовать
для php - обязательно openbasedir и набор disabled_functions типа exec, system и прочие.

ну и обязательно, last updates on system.
With best wishes, Sergej Kandyla

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Debian Hosting (apache2 vhost)

Непрочитанное сообщение paix » 2009-02-03 12:59:18

to Hazzard, если вы имеете ввиду, что пользователь может по фтп видеть все папки, то вам нужно выставить пару настроек в proftpd, кажется

Код: Выделить всё

DefaultRoot ~
With best wishes, Sergej Kandyla

Аватара пользователя
Hazzard
сержант
Сообщения: 265
Зарегистрирован: 2009-02-01 21:22:36
Откуда: Москва
Контактная информация:

Re: Debian Hosting (apache2 vhost)

Непрочитанное сообщение Hazzard » 2009-02-04 2:46:54

paix писал(а):to Hazzard, если вы имеете ввиду, что пользователь может по фтп видеть все папки, то вам нужно выставить пару настроек в proftpd, кажется

Код: Выделить всё

DefaultRoot ~
нет, не то ... первый ваш ответ сильней помог..

решение:
Добавляем в файл вхоста в раздел папки примерно следующее:

Код: Выделить всё

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
и пхп ограничен ..
Осталось найти такое же решение для перла.
Debian, php/mysql и другой бред...

paix
лейтенант
Сообщения: 863
Зарегистрирован: 2007-09-24 12:41:05
Откуда: dn.ua
Контактная информация:

Re: Debian Hosting (apache2 vhost)

Непрочитанное сообщение paix » 2009-02-04 13:26:53

для 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) - поделитесь пож.
With best wishes, Sergej Kandyla