The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Как сделать chroot для cgi-bin при виртульном хостинге?"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Как сделать chroot для cgi-bin при виртульном хостинге?"
Сообщение от Defender emailИскать по авторуВ закладки on 02-Июл-02, 18:45  (MSK)
Ну вот написал я себе в httpd.conf:
RewriteEngine on
RewriteMap   lowercase  int:tolower

# define the map file
RewriteMap   vhost      txt:/usr/local/www/vhost.map

# deal with aliases as above
RewriteCond  %{REQUEST_URI}               !^/icons/
RewriteCond  %{REQUEST_URI}               !^/cgi-bin/
RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
# this does the file-based remap
RewriteCond  ${vhost:%1}                  ^(/.*)$
RewriteRule  ^/(.*)$                      %1/docs/$1

RewriteCond  %{REQUEST_URI}               ^/cgi-bin/
RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$
RewriteCond  ${vhost:%1}                  ^(/.*)$
RewriteRule  ^/(.*)$                      %1/cgi-bin/$1

А в /usr/local/www/vhost.map:
www.def.gm.lan  /var/spool/datamail/gm.lan/def/ftp

Согласовал привилегии доступа и т.д. И всё заработало. Могу создав юзверя с почтовым я щиком и ftp доступом и виртуальным хостингом заполнив однк форму и всё!!!
Но вот вылезла другая фигня. Через php или cgi я могу добраться к любому файлу своей системы.... Сами понимаете - не хорошо это.
И честно говоря не могу даже представить себе как это запретить.... 8((
Может поделитесь опытом, или а мысль натолкнёте?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "RE: Как сделать chroot для cgi-bin при виртульном хостинге?"
Сообщение от uldus Искать по авторуВ закладки on 03-Июл-02, 10:46  (MSK)
Поднимаешь apache, perl и другие необходимые хостерам программы в chroot.
Делаешь /chroot и в качетсве homedir у юзеров приписываешь /chroot/home.
Периодически копируешь mail-spool из chroot в реальный спул (для того чтобы из скриптов могли почту рассылать) и синхринизируешь /etc/passwd (без паролей) в chroot окружение (для работы suexec). ftpd запускаешь не из под chroot, но с настройкой (например в vsftpd) или патчем затавляющийм сразу делать chroot в хоме юзера, чтобы юзер не видел ничего лишнего.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "RE: Как сделать chroot для cgi-bin при виртульном хостинге?"
Сообщение от Defender emailИскать по авторуВ закладки on 04-Июл-02, 19:25  (MSK)
>Поднимаешь apache, perl и другие необходимые хостерам программы в chroot.
>Делаешь /chroot и в качетсве homedir у юзеров приписываешь /chroot/home.
>Периодически копируешь mail-spool из chroot в реальный спул (для того чтобы из
>скриптов могли почту рассылать) и синхринизируешь /etc/passwd (без паролей) в chroot
>окружение (для работы suexec). ftpd запускаешь не из под chroot, но
>с настройкой (например в vsftpd) или патчем затавляющийм сразу делать chroot
>в хоме юзера, чтобы юзер не видел ничего лишнего.

Да! Но при этом получается, что такая вот такой вот скриптик:
#!/usr/bin/perl          
open (f, "</chroot/home/pupkin/docs/index.php");
while (<f>)              
{                        
print;                    
}                        
close f;                  

примило даст на чтение всё что надо юзверю не "pupkin"-у....
В принципе тот же фтп можно заставить создавать файлы с одним пермишеном типа 700 но тогда апач не сможет работать.....
Вот ведь в чём дело!!!!

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "RE: Как сделать chroot для cgi-bin при виртульном хостинге?"
Сообщение от uldus Искать по авторуВ закладки on 04-Июл-02, 22:56  (MSK)
>Да! Но при этом получается, что такая вот такой вот скриптик:
>#!/usr/bin/perl
>open (f, "</chroot/home/pupkin/docs/index.php");

не /chroot/home/pupkin/docs/index.ph, а /home/pupkin/docs/index.ph апач в chroot'е вместе со всеми скриптами.

>примило даст на чтение всё что надо юзверю не "pupkin"-у....

А права нормальные на директории пользователей совесть не позволяет ?
Ставь оунером юзера, а группу web севрера - чтобы статику отдавать мог. Скрипты чужих юзеров туда доступ не получат так как скрипты запускаются через suexec, т.е. под UID  текущего пользователя.
drwx--x---    4 pupkin       web           4096 Дек 23  2001 pupkin

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "RE: Как сделать chroot для cgi-bin при виртульном хостинге?"
Сообщение от Defender emailИскать по авторуВ закладки on 08-Июл-02, 17:27  (MSK)
>>Да! Но при этом получается, что такая вот такой вот скриптик:
>>#!/usr/bin/perl
>>open (f, "</chroot/home/pupkin/docs/index.php");
>
>не /chroot/home/pupkin/docs/index.ph, а /home/pupkin/docs/index.ph апач в chroot'е вместе со всеми скриптами.
>
>>примило даст на чтение всё что надо юзверю не "pupkin"-у....
>
>А права нормальные на директории пользователей совесть не позволяет ?
>Ставь оунером юзера, а группу web севрера - чтобы статику отдавать мог.
>Скрипты чужих юзеров туда доступ не получат так как скрипты запускаются
>через suexec, т.е. под UID  текущего пользователя.
>drwx--x---    4 pupkin      
>web          
>4096 Дек 23  2001 pupkin
Угу! и при этом каждому юзверю всё равно будет доступна на чтение /home/pupkin/docs/index.php так как у него група web.
А если сдеть так что бы он не смог читать чужое то и апач не сможет.
Единственный выхот на мой взгляд - это пускать всё (даже php) под uid&gid конкретного юзверя, а вот как это сделать?????
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "RE: Как сделать chroot для cgi-bin при виртульном хостинге?"
Сообщение от uldus Искать по авторуВ закладки on 08-Июл-02, 18:06  (MSK)
>Угу! и при этом каждому юзверю всё равно будет доступна на чтение
>/home/pupkin/docs/index.php так как у него група web.

Юзер не в группе WEB, в группе WEB твой apache. Соответсвтенно все, что запускается под UID/GID юзера доступ к чужим директориям никак получить не может, apache же будет прекрасно отдавать статику от всех юзеров. Это касается cgi-скриптов запущенных из-под suexec и .php файлов обработанных mod_php с включенным safe_mode.


>Единственный выхот на мой взгляд - это пускать всё (даже php) под
>uid&gid конкретного юзверя, а вот как это сделать?????

suexec + safe_mode в mod_php.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "RE: Как сделать chroot для cgi-bin при виртульном хостинге?"
Сообщение от Defender emailИскать по авторуВ закладки on 08-Июл-02, 19:12  (MSK)
>>Угу! и при этом каждому юзверю всё равно будет доступна на чтение
>>/home/pupkin/docs/index.php так как у него група web.
>
>Юзер не в группе WEB, в группе WEB твой apache. Соответсвтенно все,
>что запускается под UID/GID юзера доступ к чужим директориям никак получить
>не может, apache же будет прекрасно отдавать статику от всех юзеров.
>Это касается cgi-скриптов запущенных из-под suexec и .php файлов обработанных mod_php
>с включенным safe_mode.
>
>
>>Единственный выхот на мой взгляд - это пускать всё (даже php) под
>>uid&gid конкретного юзверя, а вот как это сделать?????
>
>suexec + safe_mode в mod_php.


Хмм...
Надо будет покопать на тему suexec + safe_mode в mod_php

Сенкс. Если что то отрапортую.... 8))

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "RE: Как сделать chroot для cgi-bin при виртульном хостинге?"
Сообщение от bluequad Искать по авторуВ закладки on 10-Июл-02, 11:05  (MSK)
А поставить группу и юзера pupkin/pupkin и пермишны 770 на хоумдир пупкина и включить в группу pupkin юзера апача идеология не позволяет? Да, естественно никаких mod_php - только php as cgi. И это - правильно, т.к. нельзя поставить лимитов на деток апача - соответственно ты никак mod_php лимитировать не сможешь.
  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру