Welcome! Log In Create A New Profile

Advanced

Re: /var/log/nginx

Maxim Dounin
January 14, 2011 03:02PM
Hello!

On Sat, Jan 15, 2011 at 12:52:57AM +0600, Pavel V. wrote:

> Здравствуйте, Peter.
>
> Вы писали 14 января 2011 г., 21:03:04:
>
> > 3. что воркер может читать и отдавать клиенту логи воркеров --- проблема
> > небольшая, потому девелоперам nginx пока и не с руки заниматься по
> > имплементационным соображениям, оно и понятно, ибо не для массового хостинга
> > ветка 0.х задумывалась, а для внутриконторских девелоперов, к которым, как
> > минимум применим уже орг. ресурс.
>
> Еще раз сакцентирую внимание: дело не только в логах.
> Пользователь foo с неким сайтом в /web/foo/sites/foo.com/htdocs легко может
> предсказать наличие файла пользователя bar в каталоге
> /web/bar/sites/bar.org/htdocs/index.php , сделать на него симлинк
> командой "ln -s /web/bar/sites/bar.org/htdocs/index.php
> /web/foo/sites/foo.com/htdocs/static/file.txt" и запросить его
> содержимое по адресу http://foo.com/static/file.txt . Получить
> пароли/исходный текст/ и т д.
>
>
> >> А решение есть уже давно:
> >> http://www.lexa.ru/nginx-ru/msg14919.html
> >> (Описание: http://www.lexa.ru/nginx-ru/msg14850.html )
>
> > а что, запрещение FollowSymLinks не сделано? в любом случае, это не решение.
>
> FollowSymLinks - это апач. В нем даже есть FollowSymLinksIfOwnerMatch.
> Но мы говорим про nginx, и он по-умолчанию отдает(обрабатывает) файлы по ссылке.
> Тот патч из рассылки как раз таки делает FollowSymLinksIfFileIsUnderDocRoot.
>
> Так что, хотелось бы увидеть более развернутый ответ на эту тему,
> побольший, чем "в любом случае, это не решение". Новое узнавать
> интересно/полезно.

Развёрнутый ответ про симлинки какой-то такой:

Защита от symlinks сейчас отсутствует во всех http-серверах, ибо
сделать ещё правильно можно только через системный вызов openat()
либо на уровне операционной системы (mount -o nosymfollow).

Применяемый в apache и lighttpd lstat() - это плацебо, там race
condition между проверкой по lstat() и реальным открытием файла.
То же относится к патчу по ссылке выше.

Если кому-то не лень - можно сделать правильную проверку через
openat(), благо он попал в POSIX и стал появляться во всяких
операционных системах. Но надо при этом понимать, что тут ещё и
performance tradeoff, минимум один системный вызов на каждый
компонент пути, т.е. без реальной нужды это так или иначе
использовать не рекомендуется, а в случае реальной нужды - mount
-o nosymfollow будет дешевле.

Развёрнутый ответ про патч от Гены, оставляющий только chmod +w
вместо chmod +rw какой-то такой:

Я считаю патч в целом правильным, но недостаточным. С этим местом
есть более одной проблемы. В частности - если файл уже создан
заранее и проставлены достаточные для nginx'а права, но через
group permissions, - nginx полезет owner'а менять без нужды. Надо
туда посмотреть внимательно.

Идеальное решение (передавать открытый дескриптор из мастера)
понятно, но нетривиально в реализации.

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

/var/log/nginx

Gena Makhomed December 14, 2010 01:06PM

Re: /var/log/nginx

Gena Makhomed December 14, 2010 01:22PM

Re: /var/log/nginx

Maxim Dounin December 14, 2010 01:52PM

Re: /var/log/nginx

Gena Makhomed December 14, 2010 03:00PM

Re: /var/log/nginx

Igor Sysoev December 14, 2010 04:46PM

Re: /var/log/nginx

Gena Makhomed December 15, 2010 02:00PM

Re: /var/log/nginx

Maxim Dounin December 14, 2010 07:38PM

Re: /var/log/nginx

Gena Makhomed December 15, 2010 02:38PM

Re: /var/log/nginx

Alexey V. Karagodov December 15, 2010 02:52PM

Re: /var/log/nginx

Gena Makhomed December 15, 2010 03:32PM

Re: /var/log/nginx

Rauf Kuliyev December 15, 2010 04:42PM

Re: /var/log/nginx

Alexey V. Karagodov December 15, 2010 04:44PM

Re: /var/log/nginx

Maxim Dounin December 15, 2010 05:24PM

Re: /var/log/nginx

Gena Makhomed December 15, 2010 06:30PM

Re: /var/log/nginx

Maxim Dounin December 15, 2010 09:06PM

Re: /var/log/nginx

Gena Makhomed December 16, 2010 06:12AM

Re: /var/log/nginx

Alexander Kardailsky December 16, 2010 06:22AM

Re: /var/log/nginx

Anton Farygin December 16, 2010 07:36AM

Re: /var/log/nginx

greenh December 16, 2010 07:42AM

Re: /var/log/nginx

Gena Makhomed December 19, 2010 06:32AM

Re: /var/log/nginx

Maxim Dounin December 19, 2010 04:04PM

Re: /var/log/nginx

Gena Makhomed January 06, 2011 05:40AM

Re: /var/log/nginx

Pavel V. January 09, 2011 03:40PM

Re: /var/log/nginx

kav January 09, 2011 04:04PM

Re: /var/log/nginx

Alexander Engel January 09, 2011 04:16PM

Re: /var/log/nginx

kav January 09, 2011 04:48PM

Re: /var/log/nginx

Александр Лозовюк January 09, 2011 04:52PM

Re: /var/log/nginx

kav January 09, 2011 10:50PM

Re: /var/log/nginx

Gena Makhomed December 14, 2010 03:50PM

Re: /var/log/nginx

Igor Sysoev December 14, 2010 04:50PM

Re: /var/log/nginx

Maxim Dounin December 14, 2010 08:04PM

Re: /var/log/nginx

Maxim Dounin December 14, 2010 08:02PM

Re: /var/log/nginx

Peter Vereshagin January 14, 2011 10:04AM

Re: /var/log/nginx

Pavel V. January 14, 2011 01:54PM

Re: /var/log/nginx

Maxim Dounin January 14, 2011 03:02PM

Re: /var/log/nginx

Pavel V. January 15, 2011 12:36PM

Re: /var/log/nginx

Sergej Kandyla January 17, 2011 04:46AM

Re: /var/log/nginx

Pavel V. January 17, 2011 11:30AM

Re: /var/log/nginx

Peter Vereshagin January 15, 2011 08:36AM

Re: /var/log/nginx

Pavel V. January 15, 2011 12:18PM

Re: /var/log/nginx

Gena Makhomed January 15, 2011 12:52PM

Re: /var/log/nginx

Pavel V. January 15, 2011 01:20PM

Re: /var/log/nginx

Peter Vereshagin January 16, 2011 02:40AM

Re: /var/log/nginx

Pavel V. January 16, 2011 10:54AM

Re: /var/log/nginx

Peter Vereshagin January 17, 2011 04:58AM

Re: /var/log/nginx

Peter Vereshagin January 18, 2011 06:48AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 141
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready