Information Security
Comments 92
+1
У меня только один вопрос, как у человека который nginx не ставил и не работал.
Он может быть полноценной заменой apache? (например для WP и PHPBB3 )
0
тут же написано что использовать nginx как прокси перед апачем.
0
Да это я понимаю, просто может nginx работать как самостоятельный web сервер?
Минусовать не надо, обычный житейский вопрос.
Или лучше использовать связку как прокси?
+1
Да можно :)
я использовал. пхп у меня работал как fastcgi, причем лучше использовать патч php-fpm
0
А есть статьи хорошие на эту тему?
Просто я обычно использую несколько вещей:
WP,PHPBB3, Simple Machines.

Да еще иногда CRM SugarCRM.
Просто если Nginx сможет полностью заменить apache, это классно!
0
Да нет Гуглом пользоваться умею, просто думал мало ли кто то имеет хорошую статью на примете. Есть хороший сервис letmegooglethatforyou.com/ =) Правда что то он щас не работает T_T
0
ну тут все уже зависит от вас. Сможете переписать mod_rewrite правила — значит хорошо, нет — извольте
+1
там не сложно переписать:
1) надо в нгинксовой версии добавить слеши в начале
2) RewriteRule заменить на rewrite
3) [L] заменить на last;

Пример апача:
RewriteRule  ^(en|de)/album/(.+?)/(.+?)/(.*)$ album.php?cn=$1&albid=$2&albname=$3&$4 [L]

нгинкс
rewrite ^ /(en|de)/album/(.+?)/(.+?)/(.*)$ /album.php?cn=$1&albid=$2&albname=$3&$4 last;
0
в нгинкс-варианте не должно быть пробела между ^ и /:
rewrite ^/(en|de)/album/(.+?)/(.+?)/(.*)$ /album.php?cn=$1&albid=$2&albname=$3&$4 last;
UFO landed and left these words here
UFO landed and left these words here
0
Вы про запускалку fastcgi процессов из пакета lighttpd (spawn-fcgi или как его там) или про что-то другое?
UFO landed and left these words here
0
Никогда не понимал, почему на неё будто молятся и ставят ради неё пакет лайти в добавок к nginx. Она же довольно тупая и по возможностям не отличается принципиально от штатного start-stop-daemon.

Хоть хабратопик в духе разрушителей мифов пиши :-)
UFO landed and left these words here
0
При том, что сама spawn'илка не делает ровным счётом ничего полезного и почти полностью полагается на штатный механизм PHP.
Это меня и удивляет.
UFO landed and left these words here
0
Есть ещё патч php-fpm — по возможностям гораздо более интересный. Я лично его использзую, доволен.
0
Да, согласен полностью, php-fpm — хороший, нужный проект.
0
Так точно, поэтому у нас, например, обычный start-stop-daemon в обвязке с gentoo script :-)
-3
nginx не имеет механизмов, похожих на htaccess. Всё остальное более-менее можно и переписать.
UFO landed and left these words here
+1
На каждый запрос дёргать N директорий (где N — уровень вложенности) на наличие и/или изменение .htaccess?
0
тем более в случае с nginx понятие «директория» не такое простое как в апаче.
0
Понял. Вы про файлик .htaccess на диске.
Я почему-то подумал про ограничение доступа вообще, в том числе те что в httpd.conf.
0
Ну возможности ограничения у него тоже не очень широкие. В LDAP он за паролями точно не полезет :-)
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
+1
Для многих задач может. Если все же нужен Апач, nginx принимает соединения, отдает статические файлы, а динамику передает дальше на обработку Апачу.
0
Спс. Пойду читать больше информации про nginx. Думаю в любом случаи он не помешает.
0
Внимательно присмотревшись понял, что там рука, повернутая ладонью вверх и от камеры.
0
Може нубский вопрос, но все же:
IIS такой атаке подвержен?
0
Не подвержен. Это связано с тем, что IIS использует совсем отличный от других веб-серверов спрособ обработки запросов.
UFO landed and left these words here
0
Сразу скажу что с ним не работал, рассказываю только по тому что я понял из статей.

В статьях написано что IIS посылает данные обработчикам не на уровне HTTP запросов, а на уровне сетевых пакетов или группы пакетов. Звучит очень сложно, но, в принципе, реально.
0
Вот отрывок:

«What IIS does differently, is in the way it handles incoming requests: There is no static tie between a worker thread and a network socket in IIS. Rather, the workers are organized in a pool where they wait for incoming TCP packets (rather than TCP connections as Apache does). These packets are then assigned dynamically to threads. So, an idle connection occupies a socket, but it does not block an entire thread. Thus the web need not be shut down by penny-wielding customers or slowloris.»
0
Судя по википедии, в винде тоже подобие accept-фильтров BSD-шных (сюрприз!) используется. :-)
+14
>>Атака заключается в очень медленной посылке все новых и новых HTTP заголовков в рамках одного HTTP запроса...
Эстонский DoS :)
+1
Ну да, прям ни кто не знал про эту атаку. 8-\ Самый настоящий баян.
+2
Вот и разработчики Apache так говорят, но на самом деле данный тип аттаки гораздо более доступен скрипт-киддисам, чем обычная DDoS атака. В то же время он гораздо дешевле.
0
скрипт-киддисы в данном случае лечатся лимитом на число соединений с одного IP
0
Увы, не все так просто. Существующие модули для ограничения соединений работают не на том уровне обработки запроса.
Более того, ограничением по IP вы порежете сети, которые сидят за NAT-ом.
+1
Netfilter поможет.

Что касается NAT, то надо просто лимит не слишком маленький ставить, чтобы не мешало нормальной работе. А при атаке лучше пусть сетка за NAT отключится, чем вообще весь апач
0
Данный тип атаки был обнародован специалистом по безопасности RSnake 17 июня

Вообще, в Update сказано, что он далеко не первый это придумал.

Ну а на самом деле это классический DoS против любого fork-ающегося сервера без адекватных лимитов и таймаутов. Настолько классический, что преподносить его как что-то новое довольно странно.
0
Можно сказать что RSnake раскрыл глаза разработчикам Apache и поднял шум вокруг этого. Думаю им придется в ближайшее время заняться таймаутами как минимум.
0
Шум поднял и proof-of-concept сделал.

Атака не новая, новы только шум и инструмент.

Ну а таймауты/лимиты — это так, workaround. Проблему решает только accept-фильтр на базе state machine (либо в ядре, либо в самом апаче, либо перед апачем).
0
В Apache есть mpm_event, который реализует state machine, но в этом случае не будут работать большинство модулей, в т.ч. mod_php. Все равно придется делать двухуровневую архитектуру.

Хотя чего уж там, сейчас даже нет реализации mod_php для mpm_worker, — только процессы.

Вы не в курсе, есть ли какие-то планы по имплементации accept http фильтров в ядре Линукс аналогично тем что есть в ядре FreeBSD?
0
Про планы не слышал, есть khttpd и tux, но я с ними не игрался.
khttpd даже в mainline 2.4 одно время был.
+1
P.S.
«A computer is a state machine. Threads are for people who can't program state machines.» © Alan Cox
+5
Атака заключается в очень медленной посылке все новых и новых HTTP заголовков в рамках одного HTTP запроса, никогда его не завершая
Какая страшная смерть! (с)
0
> в очень медленной посылке все новых и новых HTTP заголовков в рамках одного HTTP запроса, никогда его не завершая
> кроме огромного количества открытых cоединений со статусом ESTABLISHED.
По-моему фразы противоречат друг другу. В рамках одного запроса = одно соединение. Тогда откуда много открытых сокетов? Или я чего-то не понимаю?

В свое время я клал серваки следующим образом (спокойствие, хозяева были вкурсе):
1. Находится самая «тяжелая» страница с долгим запросом.
2. Пишется клиент, который открывает как можно больше соединений с сервером (пару тысяч).
3. Когда достигнуто максимально возможное значение, по всем посылается http запрос на эту страницу.
4. Для всех сокетов надо установить таймаут побольше и размер входного буфера 1 байт и не читать ответы от сервера.

Простой ограничитель числа коннекшнов с одного ip решает проблему.
0
Представьте себе 100 000 соединений (пользователей) и в каждом межденно посылаются HTTP запросы. Получаем 100 000 открытых (ESTABLISHED) соединений. А потому как HTTP запрос еще не завершен, никакой информации в access_log не будет.
0
Пробовал 3 года назад на Apache-1.3 модуль, писавший в access_log только что поступившее соединение, не дожидаясь его завершения; удобно было для отслеживания скачивания больших файлов.
Однако названия модуля уже не вспомню, увы.
0
Что означает очень медленная посылка HTTP заголовков 10 байт в минуту или сколько?
+1
Не так принципиально. Главное то, чтобы таймаут не сработал (вы его ресетите посылкой данных) и чтобы траффик был маленький. Поскольку траффик маленький, не нужны большие затраты на канал.
0
была почти такая же ситуация. только не хакеры ддосили, а региональные пользователи с модемами ходили.

поставили апач на фронтэнд и нагрузка на сервера упала.
0
Странно, нас такой фигней пытались валить еще в прошлом году. Nginx, как всегда, помог.
UFO landed and left these words here
-1
Данный тип атаки был обнародован специалистом по безопасности RSnake

как политкорректно нынче называют хакеров XD
0
вот меня поражают люди, которые ставят минус и никак его не коментируют =/
Only those users with full accounts are able to leave comments. , please.