The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Построение виртуального хостинга"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Построение хостинга)
Изначальное сообщение [ Отслеживать ]

"Построение виртуального хостинга"  +/
Сообщение от NetKnight email(ok) on 03-Апр-08, 12:56 
Хочу настроить хостинг-сервер WWW+PHP+MySQL+Mail+FTP. Настройку NS сервера я в данном контексте не рассматриваю.

По отдельности я с каждым сервисом разобрался, понял что нужно юзать виртуальных юзеров для каждого сервиса помещённых в MySQL базу, с мейлами практически полностью разобрался.
выбрал следующий софт для использования (с комментариями почему):

OS: Linux Gentoo 2007 - Секурный, надёжный, быстрый, обновляется быстро, много доков
WEB: Apache 2.2.x - Других вариантов просто не рассматривал :)
PHP: PHP 5.2.x - Тоже самое
MySQL: 5.0.x - Тоже самое
Mail: Qmail 1.0.x - Один из самых секурных мейл серверов с множеством возможностей
FTP: vsftp 2.0.x - Выбрал за секурность, хоть и в ущерб функциональности (например по отношению к proftpd которым раньше пользовался)
(Дискусия о выбраном софте так же приветствуется :) )

Но есть ряд вещей которые я просто не знаю как сделать, а именно:
1. Можно ли конфигурацию vhost для апача перенести в базу? Где копать?
2. ФТП и Апач работают под разными юзерами, а значит то, что юзер зальёт через ФТП будет недоступно апачу, т.к. он не является овнером этих файлов. Давать апачу права ФТП ИМХО не секурно. Как решить эту дилему?
3. Более спецефический вопрос: Можно ли для vsftpd создать 2 юзеров с одним корневым каталогом? Я настроил виртуальных юзеров через PAM где использовал модуль pam_mysql, но там нет возможности указать корень юзера. В Proftpd это можно было указать прямо в конфиге proftpd.conf
4. И последний вопрос как ограничить нагрузку на процессор которую создаёт PHP скрипт (допустим выделить ему 1-10%)?

Буду очень благодарен за ответы, не жду готовых конфигов (хотя примеры было бы тоже неплохо посмотреть), т.к. понимаю что у каждой задачи своя специфика, но хоть укажите где копать и что читать. После окончания работы планирую написать статью о том как создать защищённый виртуальных хостинг с нуля.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Построение виртуального хостинга - Права файлов"  +/
Сообщение от mummy on 03-Апр-08, 13:55 
user=pupkin

mkdir /home/$user
mkdir /home/$user/www
cat << EOD > /home/$user/www/index.html
        <html><head><title>${user}'s homepage</title></head><body>
        Under construction
        </body></html>
EOD
chown -R $user:users /home/$user
chmod -R a+r /home/$user
chown $user:www /home/$user
chmod g=x,o= /home/$user

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Построение виртуального хостинга"  +/
Сообщение от Lucf3r email(??) on 03-Апр-08, 16:14 
>Хочу настроить хостинг-сервер WWW+PHP+MySQL+Mail+FTP. Настройку NS сервера я в данном контексте не
>рассматриваю.
>
>По отдельности я с каждым сервисом разобрался, понял что нужно юзать виртуальных
>юзеров для каждого сервиса помещённых в MySQL базу, с мейлами практически
>полностью разобрался.
>выбрал следующий софт для использования (с комментариями почему):
>
>OS: Linux Gentoo 2007 - Секурный, надёжный, быстрый, обновляется быстро, много доков

Я предпочел CentOS. Т.к. то что получаешь используя CentOS, по большому счету - бесплатный RHEL.

>[оверквотинг удален]
>MySQL: 5.0.x - Тоже самое
>Mail: Qmail 1.0.x - Один из самых секурных мейл серверов с множеством
>возможностей
>FTP: vsftp 2.0.x - Выбрал за секурность, хоть и в ущерб функциональности
>(например по отношению к proftpd которым раньше пользовался)
>(Дискусия о выбраном софте так же приветствуется :) )
>
>Но есть ряд вещей которые я просто не знаю как сделать, а
>именно:
>1. Можно ли конфигурацию vhost для апача перенести в базу? Где копать?

Не встречал таких патчей. Да и зачем Вам это?
Чем больше вы связываете софт между собой тем меньше отказоустойчивость. Упади у Вас MySQL Апач упадет вместе с ним.

>2. ФТП и Апач работают под разными юзерами, а значит то, что
>юзер зальёт через ФТП будет недоступно апачу, т.к. он не является
>овнером этих файлов. Давать апачу права ФТП ИМХО не секурно. Как
>решить эту дилему?

Двумя способами:

1. Apache 1.3.x. Т.к. он поддерживает директивы User и Group в VirtualHost'ах(т.е. Вы сможете запускать каждый отдельный vhost под своим юзером)
2. Вся динамика (Perl/PHP) должна быть запущена в режиме CGI/FCGI с SuExec'ом. В случае с выбором PHP в режиме CGI || FCGI, вы выбираете между:
2.1. CGI: надежно, проверено, жертвуя скоростью
2.2. FCGI: за...тесь править конфиги и API для fastcgi в php, но получите приблизительный аналог mod_php

Главное не забудьте о том, что такие вещи как SSI в Apache желательно отключать, раз VirtualHost'ы работают под юзером Apache. От <--exec="" --> никто не застрахован...

>3. Более спецефический вопрос: Можно ли для vsftpd создать 2 юзеров с
>одним корневым каталогом? Я настроил виртуальных юзеров через PAM где использовал
>модуль pam_mysql, но там нет возможности указать корень юзера. В Proftpd
>это можно было указать прямо в конфиге proftpd.conf

Если одному пользователю соответствует один пользователь системы, то зачем делать дополнительные надстройки в виде pam_mysql? По-дефолту он использует home directory пользователя system'ы.

>4. И последний вопрос как ограничить нагрузку на процессор которую создаёт PHP
>скрипт (допустим выделить ему 1-10%)?

ulimits ? В процентах не скажу, но:

В файл /etc/security/limits.conf

@hostingclients            hard    cpu             10

Ограничит использования CPU для процесса до 10 минут CPU-time'а.

>Буду очень благодарен за ответы, не жду готовых конфигов (хотя примеры было
>бы тоже неплохо посмотреть), т.к. понимаю что у каждой задачи своя
>специфика, но хоть укажите где копать и что читать. После окончания
>работы планирую написать статью о том как создать защищённый виртуальных хостинг
>с нуля.

Мой совет - возьмите сервер с контрольной панелью Plesk. И переделайте его под то, что Вам нужно. Plesk поддерживает event'ы по которым Вы будете переписывать конфиги при создании нового домена, к тому же Вам не нужно будет писать свою контрольную панель с нуля. Такую схему мы использую на своем хостинге.

Если нужно подсказать по чему-то конкретному - буду рад помочь.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Построение виртуального хостинга"  +/
Сообщение от Lucf3r email(??) on 03-Апр-08, 16:18 
Хм... Перечитал свое сообщение, решил добавить - не принимайте мое сообщение как рекламу конкретной контрольной панели. Просто с CPanel'ю и DirectAdmin'ом я знаком хуже, хоть и знаю, что у Cpanel'и функционал по-богаче. :)
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Построение виртуального хостинга"  +/
Сообщение от NetKnight (ok) on 04-Апр-08, 01:32 
>Хм... Перечитал свое сообщение, решил добавить - не принимайте мое сообщение как
>рекламу конкретной контрольной панели. Просто с CPanel'ю и DirectAdmin'ом я знаком
>хуже, хоть и знаю, что у Cpanel'и функционал по-богаче. :)

Полазил по демо всех перечисленных контрол панелей и отметил что DirectAdmin с точки зрения пользователя самый привлекательный. Второе место отдал бы Plesk'у. Жаль что для Gentoo нет пакаджей ни для одного из панелей, да и вообще интеграция с ним довольно проблемна, т.к. он немного отличается по своей структуре от других линуксов.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "Построение виртуального хостинга"  +/
Сообщение от NetKnight (ok) on 04-Апр-08, 00:58 
>>OS: Linux Gentoo 2007 - Секурный, надёжный, быстрый, обновляется быстро, много доков
>Я предпочел CentOS. Т.к. то что получаешь используя CentOS, по большому счету
>- бесплатный RHEL.

Дело в том, что  я не любитель РедХата и его клонов, тут я думаю дело вкуса. Хотя было бы интересно услышать чем хорош этот дистр.

>>1. Можно ли конфигурацию vhost для апача перенести в базу? Где копать?
>Не встречал таких патчей. Да и зачем Вам это?
>Чем больше вы связываете софт между собой тем меньше отказоустойчивость. Упади у
>Вас MySQL Апач упадет вместе с ним.

Для того, чтоб не создавать дополнительную запись/файл с конфигурацией виртуального хоста для нового юзера и не рестартить апач. Насчёт отказаустойчивости я подумаю, стоит ли действительно игра свеч.

>>2. ФТП и Апач работают под разными юзерами, а значит то, что
>>юзер зальёт через ФТП будет недоступно апачу, т.к. он не является
>>овнером этих файлов. Давать апачу права ФТП ИМХО не секурно. Как
>>решить эту дилему?
>
>Двумя способами:
>
>1. Apache 1.3.x. Т.к. он поддерживает директивы User и Group в VirtualHost'ах(т.е.
>Вы сможете запускать каждый отдельный vhost под своим юзером)

Спасибо, похоже это как раз того, чего мне не хватало. Посмотрю есть ли это для апача 2.2

>2. Вся динамика (Perl/PHP) должна быть запущена в режиме CGI/FCGI с SuExec'ом.
>В случае с выбором PHP в режиме CGI || FCGI, вы
>выбираете между:
>2.1. CGI: надежно, проверено, жертвуя скоростью
>2.2. FCGI: за...тесь править конфиги и API для fastcgi в php, но
>получите приблизительный аналог mod_php
>
>Главное не забудьте о том, что такие вещи как SSI в Apache желательно отключать, раз VirtualHost'ы работают под юзером Apache. От <--exec="" --> никто не застрахован...

А чем так плох mod_php? Я много раз читал о том, что всё стоит гонять через CGI но ни разу не видел обоснования.

>>3. Более спецефический вопрос: Можно ли для vsftpd создать 2 юзеров с
>>одним корневым каталогом? Я настроил виртуальных юзеров через PAM где использовал
>>модуль pam_mysql, но там нет возможности указать корень юзера. В Proftpd
>>это можно было указать прямо в конфиге proftpd.conf
>
>Если одному пользователю соответствует один пользователь системы, то зачем делать
>дополнительные надстройки в виде pam_mysql? По-дефолту он использует home directory
>пользователя system'ы.

Да, но проблема в том, что это не совсем так: я не хочу делать системных юзеров, я хочу делать виртуальных юзеров. И на одну корневую директорию может быть несколько юзеров.

>>4. И последний вопрос как ограничить нагрузку на процессор которую создаёт PHP
>>скрипт (допустим выделить ему 1-10%)?
>ulimits ? В процентах не скажу, но:
>В файл /etc/security/limits.conf
>@hostingclients            
>hard    cpu       10
>Ограничит использования CPU для процесса до 10 минут CPU-time'а.

Знаю этот способ, но он работает если мы имеем дело с реальным юзером, а у меня виртуальные. Но ты меня почти убедил, что может я слишком перемудрил, а сделать реальных юзеров было бы и проще и разумней. :)

>[оверквотинг удален]
>>работы планирую написать статью о том как создать защищённый виртуальных хостинг
>>с нуля.
>
>Мой совет - возьмите сервер с контрольной панелью Plesk. И переделайте его
>под то, что Вам нужно. Plesk поддерживает event'ы по которым Вы
>будете переписывать конфиги при создании нового домена, к тому же Вам
>не нужно будет писать свою контрольную панель с нуля. Такую схему
>мы использую на своем хостинге.
>
>Если нужно подсказать по чему-то конкретному - буду рад помочь.

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

8. "Построение виртуального хостинга"  +/
Сообщение от Lucf3r email(??) on 06-Апр-08, 03:09 
>>1. Apache 1.3.x. Т.к. он поддерживает директивы User и Group в VirtualHost'ах(т.е.
>>Вы сможете запускать каждый отдельный vhost под своим юзером)
>
>Спасибо, похоже это как раз того, чего мне не хватало. Посмотрю есть
>ли это для апача 2.2

Есть. Как минимум два варианта и оба в режиме тестирования...

1. MPM peruser, написанный кем-то из компании telana (telana.com).
2. http://httpd.apache.org/docs/2.0/mod/perchild.html

С MPM peruser сталкивался довольно плотно. Мало того, что он не работает с SSL'ем(пробовал на 2.2.3 около 3-4 месяцев назад), но это фигня(настроил Nginx как SSL proxy), самое обидное - Apache с MPM peruser падает ри высоких нагрузках... :(

Кстати, раз уж зашла речь, забавно, но возможность использования директив "User" и "Group", убранную в Апаче 2.0 - 2.2 собираются вернуть в 2.3 %^)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Построение виртуального хостинга"  +/
Сообщение от NetKnight email(ok) on 04-Апр-08, 14:39 

>1. Apache 1.3.x. Т.к. он поддерживает директивы User и Group в VirtualHost'ах(т.е.
>Вы сможете запускать каждый отдельный vhost под своим юзером)

Это сразу не подходит.

>2. Вся динамика (Perl/PHP) должна быть запущена в режиме CGI/FCGI с SuExec'ом.
>В случае с выбором PHP в режиме CGI || FCGI, вы
>выбираете между:
>2.1. CGI: надежно, проверено, жертвуя скоростью
>2.2. FCGI: за...тесь править конфиги и API для fastcgi в php, но
>получите приблизительный аналог mod_php
>
>Главное не забудьте о том, что такие вещи как SSI в Apache желательно отключать, раз VirtualHost'ы работают под юзером Apache. От <--exec="" --> никто не застрахован...

А вот насчёт этого я пытался поузнавать и столкнулся с такой проблемой:
Допустим я настроил php через CGI или FCGI и запускаю скрипты через suEXEC с привилегияими юзера.
Но как апач сможет запускать обыкновенные HTML файлы при таком раскладе если права на юзеровский фолдер стоят 700?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Построение виртуального хостинга"  +/
Сообщение от Lucf3r email(??) on 06-Апр-08, 02:46 
>[оверквотинг удален]
>>получите приблизительный аналог mod_php
>>
>>Главное не забудьте о том, что такие вещи как SSI в Apache желательно отключать, раз VirtualHost'ы работают под юзером Apache. От <--exec="" --> никто не застрахован...
>
>А вот насчёт этого я пытался поузнавать и столкнулся с такой проблемой:
>
>Допустим я настроил php через CGI или FCGI и запускаю скрипты через
>suEXEC с привилегияими юзера.
>Но как апач сможет запускать обыкновенные HTML файлы при таком раскладе если
>права на юзеровский фолдер стоят 700?

Ставьте на юзерский фолдер 701, если все юзеры хостинга suexec'аются в одну группу, то этой группе будет запрещен вход, в то время как others'ы, в лице апача, смогут войти.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

10. "Построение виртуального хостинга"  +/
Сообщение от NetKnight email(ok) on 10-Апр-08, 22:06 
>Ставьте на юзерский фолдер 701, если все юзеры хостинга suexec'аются в одну
>группу, то этой группе будет запрещен вход, в то время как
>others'ы, в лице апача, смогут войти.

А разве others не распространяется абсолютно на всех юзеров?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

11. "Построение виртуального хостинга"  +/
Сообщение от Lucf3r (??) on 11-Апр-08, 12:42 
>>Ставьте на юзерский фолдер 701, если все юзеры хостинга suexec'аются в одну
>>группу, то этой группе будет запрещен вход, в то время как
>>others'ы, в лице апача, смогут войти.
>
>А разве others не распространяется абсолютно на всех юзеров?

Нет, логика такова:

Являюсь ли я владельцем файла?
- Да : читаю права для владельца, забиваю на остальные права
- Нет: являюсь ли я членом группы владельцев файла?
-- Да : читаю права для группы, забиваю на остальные права
-- Нет : Значит я - others, читаю права для others

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

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

9. "Построение виртуального хостинга"  +/
Сообщение от Костик (??) on 10-Апр-08, 16:48 

>1. Apache 1.3.x. Т.к. он поддерживает директивы User и Group в VirtualHost'ах(т.е.
>Вы сможете запускать каждый отдельный vhost под своим юзером)

вы ничего не перепутали ? suexec  только под виртуальными будет, а все процессы апача под пользователем апача

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

12. "Построение виртуального хостинга"  +/
Сообщение от Lucf3r (??) on 11-Апр-08, 12:43 
>
>>1. Apache 1.3.x. Т.к. он поддерживает директивы User и Group в VirtualHost'ах(т.е.
>>Вы сможете запускать каждый отдельный vhost под своим юзером)
>
>вы ничего не перепутали ? suexec  только под виртуальными будет, а
>все процессы апача под пользователем апача

Именно, такая логика распространяется на 2.0-2.2, в котором директивы User и Group заменили на SuexecUserGroup, который распространяется только на отдельнозапущенные приложения(но не на сам процесс виртуального хоста). В то время как 1.3, на сколько я помню(у меня 2.2.3 стоит уже очень давно, могу ошибиться насчет 1.3) форкал процессы для виртулхостов под конкретным пользователем заданным в виртуалхосте, таким образом даже при включенном SSI

<--# exec cmd="whoami" -->

выдавал пользователя указанного в директиве User этого виртуального хоста, в отличие от 2.x выдающего результатов "apache".

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

13. "Построение виртуального хостинга"  +/
Сообщение от даздраперма on 23-Май-08, 01:19 
>OS: Linux Gentoo 2007 - Секурный, надёжный, быстрый, обновляется быстро, много доков

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


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Построение виртуального хостинга"  +/
Сообщение от angra (ok) on 23-Май-08, 01:37 
Это ваш способ самовыражения? Ничего оригинального между прочим, очень распространенное психическое отклонение, особенно в сети.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

15. "Построение виртуального хостинга"  +/
Сообщение от hotel Vietnam on 25-Фев-12, 14:30 
> Это ваш способ самовыражения? Ничего оригинального между прочим, очень распространенное
> психическое отклонение, особенно в сети.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

Архив | Удалить

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




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

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