ISPmanager 5 + CloudLinux, возможность обхода CageFS

12
Евгений Русаченко
На сайте с 17.04.2013
Offline
157
3999

Здравствуйте, уважаемые коллеги.

Да простят меня модераторы, но в данном разделе больше хостеров увидят данное сообщение. Если критично, то перенесите в администрирование или безопасность.

Для тех, кто не в теме - CageFS это виртуальная файловая система в составе CloudLinux, которая разграничивает пользователей. Они не видят файлы друг друга, а также есть ряд иных плюшек, подробнее можете прочитать здесь http://docs.cloudlinux.com/index.html?cagefs.html

Проблема заключается в том, что ISPmanager 5 Business используется Apache в режиме работы ITK из репозитория epel, при конвертации системы в CloudLinux, всё остается без изменений (остается стоять тот же ITK). CloudLinux не умеет работать с Apache ITK из коробки, его необходимо патчить, чтобы была поддержка CageFS, об этом описано на странице http://docs.cloudlinux.com/index.html?compatiblity_matrix.html

Имеем то, что пользователи у которых включены CGI или PHP (без open_basedir), свободно могут обходить CageFS, так как не стоит патч. Я писал http://bugtrack.ispsystem.com, где мне ответили: "... на стандартных UNIX системах это считается нормой ..." и исправлять конечно же не захотели.

На мой взгляд, заявлять поддержку CageFS (https://www.ispsystem.ru/software/ispmanager/cloudlinux-module) "Гибко разграничивайте пользователей друг от друга с помощью виртуальной файловой системы CageFS" и на возможность обхода разграничений говорить, что это нормально, не является нормальным :)

Какие последствия данной проблемы - каждому судить самому, я не специалист по безопасности, но мне гораздо спокойнее спится, если пользователь не может свободно лазить по системе в обход CageFS.

Решения проблемы есть разные. Можно просто пересобрать Apache с патчем c сайта CloudLinux, можно перейти на использование Apache в режиме Prefork.

Почта для домена ( https://lite.host/pochta/dlya-domena ) с безлимитными пользователями и доменами / Хостинг ( https://lite.host/hosting/dlya-blogov ) от 99 рублей / поддержка Let's Encrypt / PHP от 5.2 до 8.3 / SSH / бесплатный перенос,
AllSerial
На сайте с 06.08.2012
Offline
66
#1

С чего вы взяли, что в IPSManager 5 Biz используется ITK из epel?

httpd-2.4.6-40.el7_2.1.cloudlinux.x86_64

Отсюда:

http://doc.ispsystem.ru/index.php/%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0_%D1%81_CentOS_%D0%BD%D0%B0_CloudLinux

Для узлов с ролями:
4.1 Web удаляются следующие пакеты:
ispmanager-pkg-httpd-itk
httpd
ispmanager-pkg-php
ispmanager-pkg-webalizer
httpd-itk
Хостинг на SSD, VPS на SSD с защитой от DDoS, Выделенные сервера - https://webstix.ru (https://webstix.ru)
Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#2
AllSerial:
С чего вы взяли, что в IPSManager 5 Biz используется ITK из epel?
httpd-2.4.6-40.el7_2.1.cloudlinux.x86_64

Отсюда:
http://doc.ispsystem.ru/index.php/%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0_%D1%81_CentOS_%D0%BD%D0%B0_CloudLinux

На CentOS 6, после конвертации системы (локальный узел) в файле /etc/sysconfig/httpd есть строка HTTPD=/usr/sbin/httpd.itk, apachectl -V выдает Server MPM: ITK, в top соответственно висят процессы /usr/sbin/httpd.itk, yum provides /usr/sbin/httpd.itk выдает Repo: epel. rpm -qa | grep httpd действительно выдает httpd-2.2.15-53.el6.cloudlinux.x86_64, но он не используется.

Система ставилась на прошлой неделе.

AllSerial
На сайте с 06.08.2012
Offline
66
#3

В CentOS 7 нет этой строчки и сервер работает в режиме:

Server MPM: prefork

UPD

Если ставили на прошлой неделе, зачем использовать 6 версию? 7 уже в продакше, и несколько апдейтов было

Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#4
AllSerial:
В CentOS 7 нет этой строчки и сервер работает в режиме:
Server MPM: prefork

Значит касается только CentOS 6.

VO
На сайте с 27.07.2008
Offline
149
#5
Евгений Русаченко:
На CentOS 6, после конвертации системы (локальный узел) в файле /etc/sysconfig/httpd есть строка HTTPD=/usr/sbin/httpd.itk, apachectl -V выдает Server MPM: ITK, в top соответственно висят процессы /usr/sbin/httpd.itk, yum provides /usr/sbin/httpd.itk выдает Repo: epel. rpm -qa | grep httpd действительно выдает httpd-2.2.15-53.el6.cloudlinux.x86_64, но он не используется.

Система ставилась на прошлой неделе.

Что-то вы путаете.

# rpm -ql httpd-2.2.15-53.el6.cloudlinux.x86_64| grep httpd.itk

/usr/sbin/httpd.itk
Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#6

Я вчера и сегодня общался с поддержкой CloudLinux, они подтвердили наличие проблемы конкретно на моём сервере. Также сказали, что клиентов с ISPmanager 5 у них мало и к ним пока с данной проблемой никто не обращался. В понедельник пообещали продолжить исследование работы подняв свою тестовую площадку. /usr/sbin/httpd.itk из их пакета с необходимыми патчами, Вы правы, V(o)ViK.

В режиме Apache Prefork работает корректно, запросы погружаются в LVE, в режиме ITK запросы не уходят в LVE из-за чего не работает CageFS.

Затрагивает ли Вас проблема можно проверить путем запуска команды:

cat /var/log/messages | grep "Can't enter lve from a slave context"

Если увидите сообщения вида:

_lve_enter: Can't enter lve from a slave context, pid 970293, oldve 48

Значит Вы под угрозой.

N
На сайте с 06.05.2007
Offline
419
#7
Евгений Русаченко:
Затрагивает ли Вас проблема можно проверить путем запуска команды:

Вообще неправда. Затрагивает или нет можно путем закачки веб-шелла на php и попытке выбраться в чужой каталог.

С чего вы взяли что обычный для ispmanager способ с созданием групп и расстановкой прав перестал работать ? http://ru.ispdoc.com/index.php/Работа_с_пользователями_и_группами

Кнопка вызова админа ()
Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#8
netwind:
Вообще неправда. Затрагивает или нет можно путем закачки веб-шелла на php и попытке выбраться в чужой каталог.
С чего вы взяли что обычный для ispmanager способ с созданием групп и расстановкой прав перестал работать ? http://ru.ispdoc.com/index.php/Работа_с_пользователями_и_группами

Речь идет об обходе ограничения CageFS, а не о чтении файлов другого пользователя. За счет выставленных прав в указанной Вами документации прочитать чужой каталог действительно невозможно, но полазить по системе - вполне можно за счет обхода CageFS.

Также, если я верно понимаю, то в случае, если запрос не попадает в LVE, перестают работать ограничения установленные для пользователя на процессор, память, число соединений и процессов, что тоже не хорошо :)

Den73
На сайте с 26.06.2010
Offline
523
#9
Евгений Русаченко:
Речь идет об обходе ограничения CageFS, а не о чтении файлов другого пользователя. За счет выставленных прав в указанной Вами документации прочитать чужой каталог действительно невозможно, но полазить по системе - вполне можно за счет обхода CageFS.

Также, если я верно понимаю, то в случае, если запрос не попадает в LVE, перестают работать ограничения установленные для пользователя на процессор, память, число соединений и процессов, что тоже не хорошо :)

пусть, все равно там нет ничего интересного кроме списка аккаунтов в passwd

Евгений Русаченко
На сайте с 17.04.2013
Offline
157
#10
Den73:
пусть, все равно там нет ничего интересного кроме списка аккаунтов в passwd

Я не специалист по безопасности, но как писал ранее - спится гораздо спокойнее, если даже /etc/passwd для пользователей закрыт :)

В ISPmanager 4 знаю, что если стоит проксирование и запросы в панель обрабатываются NGINX, то пароли всех пользователей светятся в /var/log/nginx/access.log, в 5 версии вроде бы всё хорошо в этом плане.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий