Страница 1 из 1
Дырка в хостинге или как с ней жить
Добавлено: 2017-04-24 12:24:56
wien
Всем здравия, товарищи.
Использую FreeBSD 11, nginx 1.11.10, apache 2.4 + suexec, mod_fastcgi (через него работает пхп), mysql 5.6. Небольшой скромный хостинг для десятка сайтов. Каждый сайт "запущен" от своего пользователя.
Обнаружил, если пользователь выполнит PHP код следующего содержания:
Тогда в браузер будет выведен полный список пользователей системы. Тем самым запросив через ф-цию
readfile любой файл в системе, в маске прав которого для всех прочих пользователей будет например 4,6,5 или 7 он будет прочитан. ИМХО это серьезная проблема безопасности.
Хочу заметить, что один из популярных хостеров тоже имеет такую же проблему. Сам лично проверил, и вообще не запаривается с отключением функций php (
disable_functions). У меня часть функций отключена. Два вопроса:
1.
Безопасно ли оставить все как есть? Если нет прошу рекомендаций.
2.
Если очень известный хостер имеет схожую проблему, возможно не стоит об этом беспокоиться? Там думаю не студенты работают.
Если нужна будет дополнительная информация - предоставлю, в общих чертах описал картину.
Дырка в хостинге или как с ней жить
Добавлено: 2017-04-24 18:19:29
ded_samogon
Ну, так-то вроде этот файл не должен читаться не от рута. Вроде как chmod'ом и chown'ом рулится. А доступа к нему не будет, потому что у тебя сервер апача/энжинкса + php запущен от www (ну так должно быть).
Если иначе, то в саппорт говнохостинга пиши.
Дырка в хостинге или как с ней жить
Добавлено: 2017-04-24 19:52:20
Andrey
Это нормально. Если хочется иначе, то смотреть в сторону чего-либо вроде CloudLinux с CageFS.
Дырка в хостинге или как с ней жить
Добавлено: 2017-04-25 8:12:13
guest
wien писал(а):Всем здравия, товарищи.
Использую FreeBSD 11, nginx 1.11.10, apache 2.4 + suexec, mod_fastcgi (через него работает пхп), mysql 5.6. Небольшой скромный хостинг для десятка сайтов. Каждый сайт "запущен" от своего пользователя.
Обнаружил, если пользователь выполнит PHP код следующего содержания:
Тогда в браузер будет выведен полный список пользователей системы. Тем самым запросив через ф-цию
readfile любой файл в системе, в маске прав которого для всех прочих пользователей будет например 4,6,5 или 7 он будет прочитан. ИМХО это серьезная проблема безопасности.
Хочу заметить, что один из популярных хостеров тоже имеет такую же проблему. Сам лично проверил, и вообще не запаривается с отключением функций php (
disable_functions). У меня часть функций отключена. Два вопроса:
1.
Безопасно ли оставить все как есть? Если нет прошу рекомендаций.
2.
Если очень известный хостер имеет схожую проблему, возможно не стоит об этом беспокоиться? Там думаю не студенты работают.
Если нужна будет дополнительная информация - предоставлю, в общих чертах описал картину.
# ls -lao /etc/passwd
вывод изучать до просветления
если файл доступен для чтения всем остальным, в чем проблема? и где здесь прокол в security?
Дырка в хостинге или как с ней жить
Добавлено: 2017-04-27 15:36:08
Alex Keda
ну будут знать имена всех пользователей
дальше что?
Дырка в хостинге или как с ней жить
Добавлено: 2017-04-27 22:31:32
wien
Проблема не только в доступности списке пользователей. Не очень спокойно спиться с осознанием того, что пользователи хостинга могут получить и к другим файлам, чтение которых позволяет файловая система. Нельзя как-то в chroot запереть?
Дырка в хостинге или как с ней жить
Добавлено: 2017-04-28 13:59:53
Alex Keda
Andrey писал(а): то смотреть в сторону чего-либо вроде CloudLinux с CageFS
Отправлено спустя 35 секунд:
или правильно расставить права, чтобы никто не получил доступ к чужим данным
Дырка в хостинге или как с ней жить
Добавлено: 2017-04-30 14:17:14
Bacek_92
Пардон за "небольшую наглость":
у каждой технологии есть свои плюсы и свои минусы.
Не нравиться то что дается "как есть" - напишите свое.
А хотите забронировать, то для каждого хостинга свой jail со своим окружением(APACHE+PHP).
А то, что там почитаем имена пользователей - толку все равно не будет, если у них там
Код: Выделить всё
# cat /etc/passwd
...
www-user-bond007:*:1777:1777:James Bond:/home/bond007:/usr/sbin/nologin
стоит - ваапще пофиг. Даже с любым паролем.
А если вообще параноик, то тогда так:
Код: Выделить всё
# cat /etc/ssh/sshd_config
...
PermitRootLogin no
...
AllowUsers vasyapupkin-local@192.168.0.* vasyapupkin-external operator777 KlavaMushkuna
И потом, php-файл для теста
Если там тот user, который Вы указали - нормас. Далее рулите указанием жестких прав на то, куда юзера лазить не должны.
Вот это:
Код: Выделить всё
<pre><?php
echo `cat /etc/passwd`;
?></pre>
Не есть проблемой ваабще!
Дырка в хостинге или как с ней жить
Добавлено: 2017-05-03 0:30:32
Alex Keda
создайте группу, в которую включите всех www юзеров
на хомяки дайте права 701, и владельцем юзер:созданная_группа
смогут ходить тока в свой хомяк - у группы прав-то нету
--
собственно, это единственное что надо сделать. после чего про читабельность файла паролей можно не беспокится - пусть читают, всё равно не зайдут в чужой хомяк.
--
апач, разумеется, должен быть mpm-itk