Shared Hosting Security

fixxxer

К.О.
Партнер клуба
ys

Пока спокойно... Скрипты-то выполняются в отфорканном под другим UID апаче... Хотя, дело рискованное, согласен. :D
 

andreyb

Guest
Автор оригинала: fixxxer
В общем, я тут зациклился на патчах и был неправ, ибо сам я форкаю апачи под нужным юзером, сделав ugly ugly patch FreeBSD, позволяющий setuid/setgid 80-му UID :) сорри.
А мы видно этот патч не увидим? :)
 

anight

Новичок
А зачем все эти трудности а ?
Почему не использовать php as fastcgi как я предложил выше ?
 

fixxxer

К.О.
Партнер клуба
В best-hosting.ru сейчас так и сделано. По историческим причинам во многом. Проблем с этим достаточно...
1) http-авторизация
2) .htaccess
3) apache-specific функции
4) частичная несовместимость http headers
...
п.1,4 и частично 3 решены (через жопу)... :)
 

ClayRabbit

Guest
fixxxer
Или же запретить Апачу использовать FollowSymLinks методом правки сорцов оного
Хорошая идея, кстати. Подумаю на досуге... :)
anight
кол-во запущенных apache для каждого VH должно совпадать с кол-вом запущенных php-fastcgi
Т.е. для каждого VirtualHost постоянно должны быть запущены отдельные процессы php-fastcgi , я правильно понимаю? Так ведь эдак, наверное, никакой памяти не хватит...
 

anight

Новичок
Т.е. для каждого VirtualHost постоянно должны быть запущены отдельные процессы php-fastcgi , я правильно понимаю? Так ведь эдак, наверное, никакой памяти не хватит...
памяти не хватит только если будет простаивать слишком много процессов, а на некоторые VH хватать не будет. Это можно достаточно просто исправить если добавить в php что-то вроде scoreboard (как в apache), для того чтобы родитель fastcgi мог динамически прибивать / рожать процессы по необходимости.

по сравнению с преимуществами технологии - overhead можно вообще не учитывать. мне кажется php fastcgi будет всего на 0-10% медленнее mod_php.
 

ar2r

Guest
Недавно видел еще одно решение (вам в копилку):

Апач работает от uid/gid 1000/1000 и все пользователи в системе принудительно создаются с uid/gid - 1000/1000

Впролне приемлимое решение для какогонить фрихостинга с Apache+PHP only. При этом всех можно запереть внутри своей директории (open_basedir) и отпадает проблема прав на файлы, созданные апачем
 

ar2r

Guest
2fixxxer:
это сарказм? - ты видишь какие-то подводные камни что я не углядел?)
 

fixxxer

К.О.
Партнер клуба
При условии AllowOverride No и отсутствии ВООБЩЕ каких-либо сервисов, кроме Апача и ПХП - вроде все на месте.
Но я что то не припомню хостинга, даже халявного, не поддерживающего Перл/cgi )
 

.zZz.

Новичок
Автор оригинала: nordeep
Хотелось бы узнать мнение по эти решениям:
http://www.suphp.org/
http://malik.elcat.kg/apache-suexec-php.shtml
http://www.pookey.co.uk/php-security.xml
совместно с open_basedir
что лутше, что хуже ?
А кто-нибудь пользовал http://www.suphp.org/ ? Интересует такой ньюанс: последний релиз от 2004-07-13 - это значит, что он совершенен ;) или просто автор забил на него?
Риск использования больно велик...
 

romanenco

Guest
никто не в курсе как модифицируется сервер после установки продукта от cpanel.org?

вроде у них очень популярное решение...
 

alexhemp

Новичок
Кто-нибудь пытался юзать mpm_perchild_module в Apache2

http://httpd.apache.org/docs-2.0/mod/perchild.html

Собственно он как раз и призван решать эту проблему ;-)
Вот только там указано
This module is not functional. Development of this module is not complete and is not currently active. Do not use perchild unless you are a programmer willing to help fix it.
Насколько он "нефункционален"?
 

ClayRabbit

Guest
Увы, все чего смог выдумать за это время - маленький патчик для PHP, который устраняет неудобства обычно возникающие при работе с файлами под safe_mode (суть - обезопашеный safe_mode_gid). Если кому интересно - могу поделиться.
(Проблему невозможности вызова произвольных приложений из под safe_mode это конечно же не решает.)

Правда все мы знаем, что safe_mode - не очень надежное решение и регулярность обнаружения уязвимостей позволяющих обходить данное ограничение это подтверждает.

Т.ч. альтернативы FastCGI наверное все еще нету?

-~{}~ 06.11.05 18:04:

Да и в случае бюджетного шаред-хостинга, не очень хорошая альтернатива, насколько я понимаю...

-~{}~ 06.11.05 18:05:

Нет. Не так. Я хотел сказать:
В случае бюджетного шаред-хостинга, FastCGI - не очень хорошая альтернатива, насколько я понимаю...
 

Doktor

Новичок
Автор оригинала: fixxxer
В best-hosting.ru сейчас так и сделано. По историческим причинам во многом. Проблем с этим достаточно...
1) http-авторизация
2) .htaccess
3) apache-specific функции
4) частичная несовместимость http headers
...
п.1,4 и частично 3 решены (через жопу)... :)
А по подробнее?
 

fixxxer

К.О.
Партнер клуба
Ты бы еще через 20 лет спросил. :)
Сейчас я вообще все по-другому делаю.

Собственно, раз уж заметил топик. Кто как использует FastCGI? Есть ли методы интереснее, чем по спавнеру на юзера?
 

shellcode

Новичок
Приветствую всех, хочу рассказать как решил проблему безопасности у себя.
OS: Solaris 10 x86
Apache: 2.0.5x
mod_php: 4.x
mod_security
-------------------------------------------------------
Задача:
1) Каждый вирт хост должен обслуживаться форкнутым процессом апача под своим UID/GID
2) Каждый форкнутый процесс апача должен быть зачрутен в папке вирт хоста.
3) Апач должен запускаться не от рута а от стандартного пользователя.
4) Внутри chroot'го вирт хоста пхп должен уметь отправлять почту и конектица к mysql.

Был написан свой MPM модуль для апача, проблема запуска апача не от рута решается просто встроенными средствами соляриса, для этого ненужно ни патчей ничего, все просто и быстро.
Для того чтобы пхп скрипт выполняемый в вирт хосте (а процессу делается чрут на "лету") мог отправлять письма был написал простой smtp клиент, ктсати, таким образом можно элегантно решить проблемы спама через скрипты. Т.е. дял каждого вирт хоста создается отдельный мыл акант для отсылки писем вебсервером.
MySQL. пхп ходит к базе на порт, с сокетом тут ясное дело облом.

Итого, запущеный веб шел на поломанном вирт хосте неможет
1) cat /etc/shadow и вопще cat /чтонибуть, в чруте нету _ниодного_бинарника_.
2) Рута получить невозможно в принципе, все работает от пользователей, (особенность соляриса 10 в контейнере юзер неможет создать устройство и т.п. т.е. вменяемый чрут )
3) Невозможно выйти из каталога вирт хоста.
4) Невозможно повредить/просмотреть другие хосты.
И при всем при этом mod_php работает не в safe_mod и ненакладывает подчас жутко ниудобных огранчиений для юзеров желающих использовать распространенные и дырявые скрипты.

Производительность
Конфигурация сервера 2xOpteron 1.6 GHz 800-1300Mb _USED_ RAM (на 15 высоконагруженных сайтов - одновременно примерно 250-300 On-Line юзеров.)
Total: 568 processes, 726 lwps, load averages: 0.91, 0.82, 0.73


В данный момент все это работает уже как пол года на веб сервере с нагрузкой ~15 000-25 000 уникальныйх посетителей в _сутки_ (примерно 2-2.3ТБ трафика в месяц).
Если есть желающие потестировать
1) У вас должен быть Solaris 10 x86
2) Исходники я не предоставляю (возможно позже, после аудита кода на безопасность), пока только скомпилированную версию.
e-mail: [email protected]
 
Сверху