Страница 1 из 2

Разграничение прав для WWW

Добавлено: 2010-10-19 12:30:52
icb
Задумался об оптимальной безопасности при размещения сайтов - отказываюсь от mod_php в пользу php-fpm.
Все хорошо - теперь скрипты работают от пользователя. Но получается, что пхп может писать в любой место сайта. Хотелось бы ограничить пхп в этом.
Какие есть решения такой задачи?

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 13:36:42
Electronik

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 13:42:03
icb
Сами то читали что там написано? Если читали, то перечитайте мой вопрос еще раз ;)

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 14:38:59
vadim64
1. вы хоть куда то обращались с этим вопросом до форума? гугл? вики? маны? коменты в дефолтовом конфиге?
2. если вы осознано перешли от обычного FastCGi на этот менеджер процессов, то вы не будете задавать такие вопросы, потому что всё сами прекрасно знаете и понимаете. я вот не знаю и не понимаю. и мне пофигу :pardon:

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 14:46:33
icb
я вот не знаю и не понимаю. и мне пофигу
Какой смысл сюда писать если не знаете, не понимаете и пофигу?

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 15:03:52
vadim64
где хочу там и пишу :bn:
повторяю вопрос:
vadim64 писал(а):вы хоть куда то обращались с этим вопросом до форума? гугл? вики? маны? коменты в дефолтовом конфиге?

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 15:57:51
icb
повторяю вопрос:
Не вижу смысла продолжать дискуссию с вами.
Интересует мнение тех, кто в теме.

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 17:01:13
Electronik
что вы подразумеваете под словами
Но получается, что пхп может писать в любой место сайта.

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 17:04:47
Burner
icb писал(а):Задумался об оптимальной безопасности при размещения сайтов - отказываюсь от mod_php в пользу php-fpm.
Все хорошо - теперь скрипты работают от пользователя. Но получается, что пхп может писать в любой место сайта. Хотелось бы ограничить пхп в этом.
Какие есть решения такой задачи?
то есть вы нажили себе проблему, которой раньше не было. А что вы получили?

Re: Разграничение прав для WWW

Добавлено: 2010-10-19 23:01:16
Alex Keda
Electronik писал(а):что вы подразумеваете под словами
Но получается, что пхп может писать в любой место сайта.
модулем, видимо, не мог... =)

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 8:36:24
Gloft
icb писал(а):Задумался об оптимальной безопасности при размещения сайтов - отказываюсь от mod_php в пользу php-fpm.
Все хорошо - теперь скрипты работают от пользователя. Но получается, что пхп может писать в любой место сайта. Хотелось бы ограничить пхп в этом.
Какие есть решения такой задачи?
По логике php-fpm запускает владелец процесса веб-сервера, соответственно с этими же правами и работает php-fpm.
Ограничивай в правах пользователя процесса веб-сервера.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 8:52:54
icb
Electronik писал(а):что вы подразумеваете под словами
Опишу более подробно :)
Одно из стандартных решений для размещения сайтов - mod_php. Запускать для каждого пользователя по своему апачу смысла не имеет (ресурсов не так много). Таким образом все пхп скрипты выполняются от пользователя www. У пользователя есть аккаут и следовательно свой домашний каталог. Чтобы пхп имел возможность работать с этим каталогом можно сделать группу www. Получается, что у всех файлов имеющих разрешение на чтение для группы будет доступ для вебсервера (и для пхп тоже). Если снять права на запись для группы, то пхп не сможет писать в те каталоги/файлы. Минус такого подхода - файлы создаваемые через пхп будут иметь владельца www (т.е. надо в каждом скрипте это учитывать или периодически менять у всех файлов владельца), плюс теоретически возможен доступ к файлам другого аккаунта.

Выход из этого положения - персонализировать процессы пхп, т.е. сделать работу пхп от конкретного пользователя. Но тогда получается, что работающий от пользователя процесс пхп будет иметь доступ ко всему (что доступно пользователю). А бывают случаи, когда такой доступ хочется ограничить (например, запись в некоторые каталоги или изменения некоторых файлов). Вот и вопрос - как это ограничить?
Burner писал(а):то есть вы нажили себе проблему, которой раньше не было. А что вы получили?
Получил большую безопасность (нет потенциальной возможности доступа к чужим файлам) и убрал проблему с владельцем при создании файлов (см. подробное объяснение выше).
Alex Keda писал(а):модулем, видимо, не мог... =)
Модуль мог ограничить на чтение и на запись к определенным каталогам и файлам (см. подробное объяснение выше).
Gloft писал(а):По логике php-fpm запускает владелец процесса веб-сервера, соответственно с этими же правами и работает php-fpm.
В конфиге есть настройка от какого пользователя работать, т.е. можно для каждого аккаунта выделить порт и повесить php-fpm с требуемым пользователем.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 9:43:26
Gloft
icb писал(а):В конфиге есть настройка от какого пользователя работать, т.е. можно для каждого аккаунта выделить порт и повесить php-fpm с требуемым пользователем.
Значит надо ограничивать того из-под которого запускается php-fpm. Вариантов ораганичения в данном случае не так много.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 9:55:28
icb
Значит надо ограничивать того из-под которого запускается php-fpm.
Тогда ограничится и сам пользователь.
Вариантов ораганичения в данном случае не так много.
Вроде тут многие сайты размещают - интересно как они решают подобные проблемы.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 13:05:43
vadim64
icb писал(а):
Electronik писал(а):что вы подразумеваете под словами
Опишу более подробно :)
Спасибо, что нашли время между построением планов мирового господства :-D
icb писал(а): ...бла-бла-бла...
Выход из этого положения - персонализировать процессы пхп, т.е. сделать работу пхп от конкретного пользователя. Но тогда получается, что работающий от пользователя процесс пхп будет иметь доступ ко всему (что доступно пользователю). А бывают случаи, когда такой доступ хочется ограничить (например, запись в некоторые каталоги или изменения некоторых файлов). Вот и вопрос - как это ограничить?
Я конечно не проффессиональный телепат, а только учусь, но всё же попробую: почитайте Руководство FreeBSD: 13.7. Ограничение пользователей
icb писал(а):
Burner писал(а):то есть вы нажили себе проблему, которой раньше не было. А что вы получили?
Получил большую безопасность (нет потенциальной возможности доступа к чужим файлам) и убрал проблему с владельцем при создании файлов (см. подробное объяснение выше).
Для повышения безопасности ваших серверов советую вам вернуться к вашим изысканиям в области корневых серверов, PermitRootLogin и Глубины стойки 19". Так вашим серверам будет безопаснее.

Ну и ваще, повторяю вопрос:
vadim64 писал(а):повторяю вопрос:
vadim64 писал(а):вы хоть куда то обращались с этим вопросом до форума? гугл? вики? маны? коменты в дефолтовом конфиге?

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 13:52:34
icb
2 vadim64
Повторюсь - ваше мнение не интересует. Интересует мнение тех, кто разбирается в вопросе.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 14:02:51
Gloft
icb писал(а): Интересует мнение тех, кто разбирается в вопросе.
Решение уже написали.
Ограничивать пользователя из под которого работает php-fpm средстваим ОС и chmod на папки и файлы.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 14:16:36
vadim64
to Gloft: да не вкуривает он это))) или считает что это тупое нубовское решение))) бестолку ему это говорить))) не мешай мне с ним сраться :-D :-D

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 14:59:49
icb
Gloft писал(а):Ограничивать пользователя из под которого работает php-fpm средстваим ОС и chmod на папки и файлы.
icb писал(а):Выход из этого положения - персонализировать процессы пхп, т.е. сделать работу пхп от конкретного пользователя. Но тогда получается, что работающий от пользователя процесс пхп будет иметь доступ ко всему (что доступно пользователю). А бывают случаи, когда такой доступ хочется ограничить (например, запись в некоторые каталоги или изменения некоторых файлов).
Т.е. если ограничить пользователя под которым работает php-fpm, то ограничится и сам пользователь (владелец аккаунта). А надо ограничить только пхп.
Выходит, что изначальная затея пускать пхп под пользователем аккаунта не очень хорошая. Но если пускать пхп под www, то вернется проблема с владельцем созданных файлов :(

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 15:06:13
Gloft
Кто вам мешает сдалеть пользователя специально для php-fpm и ограничить его.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 15:17:18
icb
Кто вам мешает сдалеть пользователя специально для php-fpm и ограничить его.
Имею аккаунт a-user, пхп пускаю под пользователем a-php.
Тогда созданные пхп файлы будут иметь владельца a-php. Если скриптом не будут добавлены права для a-user, то владелец аккаунта (a-user) не сможет работать с этим файлом через SSH (например). А таких (не подправляющих права файлов при создании) скриптом большинство.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 15:19:17
vadim64
icb писал(а):
Кто вам мешает сдалеть пользователя специально для php-fpm и ограничить его.
Имею аккаунт a-user, пхп пускаю под пользователем a-php.
Тогда созданные пхп файлы будут иметь владельца a-php. Если скриптом не будут добавлены права для a-user, то владелец аккаунта (a-user) не сможет работать с этим файлом через SSH (например). А таких (не подправляющих права файлов при создании) скриптом большинство.
А группы?

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 15:23:28
Gloft
Выставить пользователю a-php по умолчанию маску на создаваемые файлов допускающую читать и писать своей группе.
Добавить пользователей конектившихся через ssh в группу a-php.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 16:03:10
icb
Предположим a-php создал каталог. Пусть даже создал нормально с правами на запись для группы (хотя в тестовых сборках php-fpm не хотел работать по маске, надо проверить на последних версиях).
Пользователь a-user зашел по SSH и хочет сделать так, чтобы a-php больше не писал в этот каталог (мог только читать).
Сделать это не получится, т.к. a-user не может сменить владельца у этого каталога.

Re: Разграничение прав для WWW

Добавлено: 2010-10-20 23:45:07
Alex Keda
зачем вам это.
я непонимаю.
зачем такой изврат