Здрвствуйте
Подскажите как можно защититься от просмотра содержимого каталогов сервера через скрипты на сайте?
любой шел видит многие папки
не все доступно но и листинг файлов показывать бы не хотелось дальше своей домашней директорииЧем можно запретить просмотр?
Похоже у вас в голове такая каша, что вы даже вопрос не можете внятно сформулировать. Можно посоветовать только засесть за документацию и систематизировать свои знания.
Изменить скрипты на сайте так, чтобы они не показывали листинги каталогов.Смутно полагаю, что у вас Apache httpd со включенным mod_autoindex
Отключите этот модуль вообще, или сделайте на директории/хосты
Options -Indexes
я не про Indexes имел ввиду а про возможность видеть корневую сисему катологов - дальше своей домашней директории
>я не про Indexes имел ввиду а про возможность видеть корневую сисему
>катологов - дальше своей домашней директорииchroot поможет? Материалов здесь на эту тему много.
чрут тут не поможет тк будет видно окружене чрута и какой толк?
>чрут тут не поможет тк будет видно окружене чрута и какой толк?Давайте попробуем чётко сформулировать задачу, а то до сих пор это у вас как-то не очень получалось.
Итак, вы хотите, чтобы пользователи работали в системе через оболочку и скрипты, но при этом видели бы только содержимое своего домашнего каталога. Так? Если так, то ответьте на такие вопросы:
1. Работа в системе предполагает запуск программ, которые обычно лежат в каталогах типа /bin, /usr/bin и иже с ними и часто читают конфигурационные файлы в /etc, /usr/local/etc и т. д. Как пользователь будет запускать программы (ту же оболочку), если не видит дальше своего каталога?
2. При толково настроенных правах в файловой системе пользователь и так имеет доступ только к тому, что положено ему. Зачем нужны ещё более строгие ограничения?
3. Что, собственно, вы хотите получить в итоге? Какую функциональность?
Реальный пример. Мой хостер даёт мне (и множеству других клиентов) доступ по SSH. Захожу, спокойно выполняю команды типа ls /, ls /sbin и даже (о ужас!) cat /etc/passwd. Они выполняются и показывают то, что и должны. И знаете, думается мне, что это ни к каким проблемам с безопасностью не ведёт.
может пользователь и не имеет доступа но по крайней мере видит листинг директорий общедоступных
таких как /etc
а значит видит названия папко установленных программ и уже что то будет знать
как говорится чем меньше о тебе знают тем лучше спишь
может как то можно скрывать части системы чтоли?
>как говорится чем меньше о тебе знают тем лучше спишь
>может как то можно скрывать части системы чтоли?Знаете, вы хотите странного. Конечно, всё это как-то можно реализовать (Опен Соурс - здесь всё можно сделать), но задача эта слишком индивидуальна и слишком масштабна, чтобы её решать здесь на форуме. Обратитесь к специалисту. Само собой, это будет стоить денег, зато здоровый сон обеспечен :)
ну если все палят свои корневые каталоги
"по типу ну пусть смотрит толку то"
то я умываю руки от таких "защищенных систем"
странно что на опеннете никто подобные вопросы не задвал
видать всем по* и на* походу
Никогда не думали что у других вашей проблемы просто не возникает? Я например не понимаю зачем давать шелл на корневой каталог через веб скрипты, но еще больше мне непонятно зачем потом спрашивать как его убрать. Сами сделали - сами и убирайте.
>Никогда не думали что у других вашей проблемы просто не возникает? Я
>например не понимаю зачем давать шелл на корневой каталог через веб
>скрипты, но еще больше мне непонятно зачем потом спрашивать как его
>убрать. Сами сделали - сами и убирайте.Доброго времени суток!!!
Я прошу прощения, но чего вы так на человека напустились??? Он действительно поднял серьезную проблему... просто, как сказал уважаемый angra, человек четко не сформулировал вопроса... но если повнимательнее посмотреть его первый пост, то все в принципе становиться понятно...
Скорее всего он имеет в виду не локальный доступ. Я так понимаю, он предоставляет пользователям веб-сервис, соответствено есть апач(ну или другой веб-сервер) и доступ пользователям по ftp... это минимальные требования, так вот и среди этих ползователей есть слишком "умные", которые заливают к себе в домашнюю дирректорию всякие пхп-скрипты при помощи которых творят разные пакости... и я так понимаю, что человек жалуется на так называемые web-shell'ы или аналоги, что-то вроде remview_2003_10_23.php при помощи которых эти пользователи могут подниматься выше по дирректориям, просматривать разные файлы других пользователей, особенно конфигурационные, в которых могут быть пароли к БД или еще что-нибудь...
вот, а пользователи дающие советы о Index'ах или chroot либо не допоняли чего-то, либо действительно не сталкивались с такими проблемами, но это скорее всего не их заслуга... :)
Вот и человек просит совета как с такими вещами бороться...
>Вот и человек просит совета как с такими вещами бороться...jail/vserver и пусть себе лазают где хотят...
Уважаемый является квалифицированным телепатом? Завидую :)
Есть очень много способов решения описанной вами(а не автором топика) проблемы, однако тема эта слишком объемна(не сложна, а именно объемна), чтобы обсуждать ее на форуме в общем, а не частные случаи.
>Уважаемый является квалифицированным телепатом? Завидую :)
>Есть очень много способов решения описанной вами(а не автором топика) проблемы, однако
>тема эта слишком объемна(не сложна, а именно объемна), чтобы обсуждать ее
>на форуме в общем, а не частные случаи.ну тут не надо быть телепатом чтобы понять чего человек хочет...
>Подскажите как можно защититься от просмотра содержимого каталогов сервера через скрипты на сайте?здесь ключевые слова: скрипты и на сайте... как я уже сказал, да некорректно сказано, но понять можно... :)
а вот по поводу решения этой проблемы, мне тоже было бы интересно посмотреть на способы решения... если, вы говорите что тема слишком объемна, то хотя бы разделить на направления решения и возможно, если не затруднит, источники информации...
например: Виртуализация, возможность ограничения доступа к различным дирректориям/файлам, запрет каких-то функций PHP...
я тоже сталкивался с подобными проблемами и пока что я вижу виртуализацию самым лучшим выходом из данной ситуации, но попробовать пока не могу... нет ни времени ни возможности(свободного железа)... :) да и было бы интересно какое нужно железо для этого, а вот если у меня хостится 1000 пользователей...
вот, хотелось бы узнать, есть какое-нибудь компромисное решение, допустим без виртуализации и без запрета ПХП'шных функций...
так что было бы неплохо послушать толковые светы.
Спасибо!
Если большое количество пользователей, то пора переходить на простейшие кластеры, в таком случае чтение /etc/passwd или еще чего-нибудь на сервере не будет играть никакой роли, важно только не дать пользователем читать данные друг друга. Делается это через 700 на documentroot каталог пользователя и индивидуальный uid для каждого, на apache накладывается патч позволяющий ему выполнять скрипты со сменой uid, подобных патчей несколько, часть из них в свободном доступе. Рассчитывать на безопасность средствами php не стоит, это все равно одна большая дырка, никакое отключение функций не спасет. Единственной проблемой остаются эксплойты дающие повышение привилегий, даже при убранном gcc некоторые из них можно использовать.
Можно с помощью open_basedir в параметрах PHP
>Если большое количество пользователей, то пора переходить на простейшие кластеры, в таком
>случае чтение /etc/passwd или еще чего-нибудь на сервере не будет играть
>никакой роли, важно только не дать пользователем читать данные друг друга.
>Делается это через 700 на documentroot каталог пользователя и индивидуальный uid
>для каждого, на apache накладывается патч позволяющий ему выполнять скрипты со
>сменой uid, подобных патчей несколько, часть из них в свободном доступе.
>Рассчитывать на безопасность средствами php не стоит, это все равно одна
>большая дырка, никакое отключение функций не спасет. Единственной проблемой остаются эксплойты
>дающие повышение привилегий, даже при убранном gcc некоторые из них можно
>использовать.Спасибо за ответ! Патч для апача (хм, каламбур :)) надо будет посмотреть...
И еще один вопрос, в принципе из той же оперы... Есть разные прокси и качалки написаные на пхп, пользователи ими иногда злоупотребляют... как с таким бороться???
Спасибо!
Отключить в настройках PHP функции, отвечающие за работу с сокетами и файлами.
>Отключить в настройках PHP функции, отвечающие за работу с сокетами и файлами.
>Я не программер на ПХП, поэтому я не знаю точно перечень функций которые работают с сокетами и файлами... И вопрос по запрету функций уже поднимался, мне кажется что это не самый удачный выход... и возникает вопрос, а если эти функции нужны для "доброго" :) дела... вот какой-нибудь программер без них жить не сможет... и будет кричать, что за отстойный серевер не поддерживает такие функции...
>и возникает вопрос, а если эти функции нужны для "доброго" :)
>дела... вот какой-нибудь программер без них жить не сможет...
>и будет кричать, что за отстойный серевер не поддерживает такие функции...
>А закрыть "ненужные" исходящие соединения файрволом... И открывать только по требованию и только на определённые (нужные "клиенту") адреса/порты..? )
хм смотрю и вижу что все ля да ля а толком ниодного решения
визуализация - ужоснах - это вдс технология а я о шареде вообщето
джайл хм не пробовал но грят ресурсы жрет (как тута выразились при 1к узиров какую же тачку надо иметь)
кластеры это дорого пока - они оправдывают себя при оч больших каоличествах пользователей
open_basedir это хорошо только когда апач дефолтный - т.е работают все от 1 узира - тоже додумались разработчики блин
но у меня славу богу не от одного узира работают (не suexec чтоб ему пусто было) и в таком случае open_basedir не работает
поэтому то через вссякие шелы кое чего и видно.обидно что никто не хочет палить решения.
оно есть и не одно тока все жмут как правило ответ - обдно (
Вернитесь в школу, пусть вас научат внимательно читать и грамотно писать. Пока этому не научитесь конструктивного диалога с вами не получится.