Hello! Коллеги, помогите, pls, найти решение проблемы. Суть: есть сервер виртуального хостинга с кучей пользователей. Иногда проявляется своего рода DoS, при котором с нескольких тысяч независимых хостов идёт поток запросов к несущестующему файлу в корне одного из виртуальных доменов. Запросы вида: "GET /g.jpg HTTP/1.0". Имя файла варьируется в духе "\w\.jpg". Http-Referrer отсутствует. Поток запросов таков, что на их обслуживание уходят все свободные child'ы apache, что приводит к задержкам в ответах "честным" посетителям веб-сервера. Создание такого файла, например, нулевой длинны, не спасает от количества запросов. Просто запросы чуток быстрее отрабатываются, чем "404 Not Found". Хочется резать (drop'ать/reset'ить/forward'ить) такие запросы _до_ apache. Фильтровать контекстно пакеты на core router'ах - неоправданно дорого по ресурсам. Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc. ps: веб-хостеры! у нас у одних такие грабли или это повсеместно? -- George L. Yermulnik [YZ-RIPE] =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hi George,
Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
По-моему передача src адресов как-то решалась. Только будет ли он работать быстрее? -- Michael Ничто не дается нам так дешево, как хочется. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, 29 Oct 2004, George L. Yermulnik wrote:
Хочется резать (drop'ать/reset'ить/forward'ить) такие запросы _до_ apache. Фильтровать контекстно пакеты на core router'ах - неоправданно дорого по ресурсам. Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
squid поставит X-Forwarded-For, который потом apache может прописать в лог. Igor Khasilev | PACO Links, igor at paco dot net | =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hello! On Fri, 29 Oct 2004 at 14:41:55 (+0300), Igor Khasilev wrote:
Хочется резать (drop'ать/reset'ить/forward'ить) такие запросы _до_ apache. Фильтровать контекстно пакеты на core router'ах - неоправданно дорого по ресурсам. Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
squid поставит X-Forwarded-For, который потом apache может прописать в лог.
Не только в логах проблема. Реальные src адреса нужны для access-контроля (deny/allow), для шейпинга etc. -- George L. Yermulnik [YZ-RIPE] =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Friday 29 October 2004 14:35, George L. Yermulnik wrote:
Hello!
Коллеги, помогите, pls, найти решение проблемы.
Суть: есть сервер виртуального хостинга с кучей пользователей. Иногда проявляется своего рода DoS, при котором с нескольких тысяч независимых хостов идёт поток запросов к несущестующему файлу в корне одного из виртуальных доменов. Запросы вида: "GET /g.jpg HTTP/1.0". Имя файла варьируется в духе "\w\.jpg". Http-Referrer отсутствует. Поток запросов таков, что на их обслуживание уходят все свободные child'ы apache, что приводит к задержкам в ответах "честным" посетителям веб-сервера. Создание такого файла, например, нулевой длинны, не спасает от количества запросов. Просто запросы чуток быстрее отрабатываются, чем "404 Not Found".
Хочется резать (drop'ать/reset'ить/forward'ить) такие запросы _до_ apache. Фильтровать контекстно пакеты на core router'ах - неоправданно дорого по ресурсам. Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
ps: веб-хостеры! у нас у одних такие грабли или это повсеместно?
делать на FreeBSD: 1. /sbin/kldload accf_http 2. ipfw add allow tcp from any to me 80 limit src-addr N -- Dimitry Хочешь завести друзей-заведи их подальше. Иван Сусанин =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hi George,
Хочется резать (drop'ать/reset'ить/forward'ить) такие запросы _до_ apache. Фильтровать контекстно пакеты на core router'ах - неоправданно дорого по ресурсам. Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
squid поставит X-Forwarded-For, который потом apache может прописать в лог.
Не только в логах проблема. Реальные src адреса нужны для access-контроля (deny/allow), для шейпинга etc.
Если squid сам по себе это дело ускоряет - можно поставить его даже на той же самой машине, тогда менять deny/allow не понадобится. -- Michael Умный учится на чужик ошибках, дурак - на своих. Получается, что умный учится у дурака. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, 29 Oct 2004, George L. Yermulnik wrote:
Hello!
On Fri, 29 Oct 2004 at 14:41:55 (+0300), Igor Khasilev wrote:
Хочется резать (drop'ать/reset'ить/forward'ить) такие запросы _до_ apache. Фильтровать контекстно пакеты на core router'ах - неоправданно дорого по ресурсам. Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
squid поставит X-Forwarded-For, который потом apache может прописать в лог.
Не только в логах проблема. Реальные src адреса нужны для access-контроля (deny/allow), для шейпинга etc.
С шейпингом - решается в аккселераторе. Доступ на основе src ip тоже решается в аккселераторе (не всегда так удобно и гибко как в apache). Да, совсем не решается, если ни основе src ip влючаются какие-нибудь опции апача или модулей. В крайнем случае - можно силой заставить апач считать что соединение пришло с адреса указанного в X-Forwarded-For, но это стрёмное решение с точки зрения безопасности.
-- George L. Yermulnik [YZ-RIPE] =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Igor Khasilev | PACO Links, igor at paco dot net | =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Oct 29, 2004 at 13:41:26 (+0200), Michael Petuschak wrote:
Hi George,
Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
По-моему передача src адресов как-то решалась. Только будет ли он работать быстрее?
Дело не в быстрее - сам хостинг-сервер справляется. Просто нельзя же увеличивать допустимое кол-во http детей (было 300 - все заюзались, поставили 600 - опять все заюзались). Вопрос в том, чтобы на сквиде с помощью редиректора ловить именно эти запросы и не пускать к серверу хостинга, а отвечать ссылаясь на 127.0.0.1 (например). А те запросы, которые не попадут под regex пропускать дальше к серверу хостинга. Но получится, что к серверу хостинга (на вирт. домены) ходият только с одного src, с того, где сквид (со всеми вытекающими). p.s. Самый радикальный способ, это поставить пользователю (для его домена) IN A в 127.0.0.1 - но сами понимаете...
-- Michael Ничто не дается нам так дешево, как хочется. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
-- wbr, kden =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Denis P. Khripun wrote:
On Fri, Oct 29, 2004 at 13:41:26 (+0200), Michael Petuschak wrote:
Hi George,
Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
По-моему передача src адресов как-то решалась. Только будет ли он работать быстрее?
Дело не в быстрее - сам хостинг-сервер справляется. Просто нельзя же увеличивать допустимое кол-во http детей (было 300 - все заюзались, поставили 600 - опять все заюзались). Вопрос в том, чтобы на сквиде с помощью редиректора ловить именно эти запросы и не пускать к серверу хостинга, а отвечать ссылаясь на 127.0.0.1 (например). А те запросы, которые не попадут под regex пропускать дальше к серверу хостинга.
Но получится, что к серверу хостинга (на вирт. домены) ходият только с одного src, с того, где сквид (со всеми вытекающими).
p.s. Самый радикальный способ, это поставить пользователю (для его домена) IN A в 127.0.0.1 - но сами понимаете...
Ещё можно попробовать использовать snort, собранный с flexresp - если, конечно, эти запросы можно оформить в виде какого-то шаблона. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, 29 Oct 2004, Denis P. Khripun wrote:
On Fri, Oct 29, 2004 at 13:41:26 (+0200), Michael Petuschak wrote:
Hi George,
Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
По-моему передача src адресов как-то решалась. Только будет ли он работать быстрее?
Дело не в быстрее - сам хостинг-сервер справляется. Просто нельзя же увеличивать допустимое кол-во http детей (было 300 - все заюзались, поставили 600 - опять все заюзались). Вопрос в том, чтобы на сквиде с помощью редиректора ловить именно эти запросы и не пускать к серверу
Зачем? К серверу прокси пойдет один раз, получат 404, сохранит в кэше и будут отдавать оттуда, не надо регексов. Igor Khasilev | PACO Links, igor at paco dot net | =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
Hello! On Fri, 29 Oct 2004 at 14:54:57 (+0300), Dmitry Alyabyev wrote:
Суть: есть сервер виртуального хостинга с кучей пользователей. Иногда проявляется своего рода DoS, при котором с нескольких тысяч независимых хостов идёт поток запросов к несущестующему файлу в корне одного из виртуальных доменов. Запросы вида: "GET /g.jpg HTTP/1.0". Имя файла варьируется в духе "\w\.jpg". Http-Referrer отсутствует. Поток запросов таков, что на их обслуживание уходят все свободные child'ы apache, что приводит к задержкам в ответах "честным" посетителям веб-сервера. Создание такого файла, например, нулевой длинны, не спасает от количества запросов. Просто запросы чуток быстрее отрабатываются, чем "404 Not Found".
Хочется резать (drop'ать/reset'ить/forward'ить) такие запросы _до_ apache. Фильтровать контекстно пакеты на core router'ах - неоправданно дорого по ресурсам. Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
ps: веб-хостеры! у нас у одних такие грабли или это повсеместно?
делать на FreeBSD: 1. /sbin/kldload accf_http
Thanx.
2. ipfw add allow tcp from any to me 80 limit src-addr N
error.log с 00 часов сегодняшней ночи говорит, что таких запросов было 195216, а самый "частый" ip-адрес повторялся аж 311 раз. Т.е. limit src-addr тут не поможет... Вот такие пироги =( -- George L. Yermulnik [YZ-RIPE] =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Oct 29, 2004 at 15:17:28 (+0300), Igor Khasilev wrote:
Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
По-моему передача src адресов как-то решалась. Только будет ли он работать быстрее?
Дело не в быстрее - сам хостинг-сервер справляется. Просто нельзя же увеличивать допустимое кол-во http детей (было 300 - все заюзались, поставили 600 - опять все заюзались). Вопрос в том, чтобы на сквиде с помощью редиректора ловить именно эти запросы и не пускать к серверу
Зачем? К серверу прокси пойдет один раз, получат 404, сохранит в кэше и будут отдавать оттуда, не надо регексов.
а) а остальные то запросы он тоже закеширует. б) src всегда будет сквидовый. Интересно, а можно сказать сквиду, чтобы он кешировал только 404? Тогда можно было бы захатчить сам сквид, чтобы он в с первым SYN'ом отдавал src из X-Fwd-to но данные в X-Fwd-to можно нарисовать любые. p.s. Это еще хорошо, что они не запрашивают "GET / HTTP/1.0".
Igor Khasilev | PACO Links, igor at paco dot net |
-- wbr, kden =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Oct 29, 2004 at 03:04:05PM +0300, Denis P. Khripun wrote:
Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
По-моему передача src адресов как-то решалась. Только будет ли он работать быстрее?
Дело не в быстрее - сам хостинг-сервер справляется. Просто нельзя же увеличивать допустимое кол-во http детей (было 300 - все заюзались, поставили 600 - опять все заюзались). Вопрос в том, чтобы на сквиде с помощью редиректора ловить именно эти запросы и не пускать к серверу хостинга, а отвечать ссылаясь на 127.0.0.1 (например). А те запросы, которые не попадут под regex пропускать дальше к серверу хостинга.
Но получится, что к серверу хостинга (на вирт. домены) ходият только с одного src, с того, где сквид (со всеми вытекающими).
p.s. Самый радикальный способ, это поставить пользователю (для его домена) IN A в 127.0.0.1 - но сами понимаете...
Как вариант: развернуть A-запись на какой-нибудь отдельный тазик - "жертву", на который временно вынести сайт этого несчастного хостера и отдать на растерзание. Да, съедят, но зато весь остальной хостинг будет жить. Апач там можно будет ограничить гораздо меньшим количеством чайлдов, так что тазик пойдойдет совсем простенький. Может даже к этой жертве кто-то из реальных клиентов достучаться сможет.. Хотя, конечно, вряд ли.. P.S. По-моему, PIX в данном случае как-раз то, что нужно. Кошководы поправят, если ошибаюсь. -- Dmitry Kiselev =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Oct 29, 2004 at 11:22:56PM +0300, Dmitry Kiselev wrote:
On Fri, Oct 29, 2004 at 03:04:05PM +0300, Denis P. Khripun wrote:
Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc.
По-моему передача src адресов как-то решалась. Только будет ли он работать быстрее? Будет, а главное - будет вообще работать. 2 момента, где squid помогает - не дёргать backend за статиком (gif/jpg), и быстро "всосать" ответ backend, потом его долго-нудно кормить клиенту.
Дело не в быстрее - сам хостинг-сервер справляется. Просто нельзя же увеличивать допустимое кол-во http детей (было 300 - все заюзались, поставили 600 - опять все заюзались). во-во.
Вопрос в том, чтобы на сквиде с помощью редиректора ловить именно эти запросы и не пускать к серверу хостинга, а отвечать ссылаясь на 127.0.0.1 (например). А те запросы, которые не попадут под regex пропускать дальше к серверу хостинга. да - хоть и не читал, чего хотят сделать - но редиректоры в accelerator mode весьма полезны.
Но получится, что к серверу хостинга (на вирт. домены) ходият только с одного src, с того, где сквид (со всеми вытекающими). Да - торба статистике, её надо на прокси выносить
p.s. Самый радикальный способ, это поставить пользователю (для его домена) IN A в 127.0.0.1 - но сами понимаете...
Как вариант: развернуть A-запись на какой-нибудь отдельный тазик - "жертву", на который временно вынести сайт этого несчастного хостера и отдать на растерзание. Да, съедят, но зато весь остальной хостинг будет жить. Апач там можно будет ограничить гораздо меньшим количеством Да в сквмде delay_pools/maxconn поставить в acl - и никаких проблем.
чайлдов, так что тазик пойдойдет совсем простенький. Может даже к этой Да нормально оно работает, сквиды у меня в accel mode ездят и отдавали до десятка мегабит - до backend только 3.5M было (T2 line).
-- Best regards, Paul Arakelyan. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Oct 29, 2004 at 02:35:31PM +0300, George L. Yermulnik wrote:
Hello!
Коллеги, помогите, pls, найти решение проблемы.
Суть: есть сервер виртуального хостинга с кучей пользователей. Иногда проявляется своего рода DoS, при котором с нескольких тысяч независимых хостов идёт поток запросов к несущестующему файлу в корне одного из виртуальных доменов. Запросы вида: "GET /g.jpg HTTP/1.0". Имя файла варьируется в духе "\w\.jpg". Http-Referrer отсутствует.
Смахивает на спамвертайзинг, только вот что нету объекта - странно. А жалоб нету совсем-совсем, groups.google.com молчит на тему названия домена?
Поток запросов таков, что на их обслуживание уходят все свободные child'ы apache, что приводит к задержкам в ответах "честным" посетителям веб-сервера. А шо вы думали - эт и есть специфика хостинга для таких целей...
Создание такого файла, например, нулевой длинны, не спасает от количества запросов. Просто запросы чуток быстрее отрабатываются, чем "404 Not Found". squid умеет negative caching. но если названия объектов совсем случайны - поможет не особо сильно, но тоже поможет. Хостинг на dialup с 0.5M requests daily именно так и жил.
Хочется резать (drop'ать/reset'ить/forward'ить) такие запросы _до_ apache. Фильтровать контекстно пакеты на core router'ах - неоправданно дорого по ресурсам. Поставить до вебсервера "реверсный" сквид чревато потерей реальных src адресов etc. Написать статистику для squid, ну а вот для аутентификации - сквид прийдётся хакать на предмет борьбы со спуфингом+модуль к апачу.
ps: веб-хостеры! у нас у одних такие грабли или это повсеместно? Повсеместно, где не сталкивались с таким :) :-|.
-- Best regards, Paul Arakelyan. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
On Fri, Oct 29, 2004 at 03:38:01PM +0300, George L. Yermulnik wrote:
Hello!
error.log с 00 часов сегодняшней ночи говорит, что таких запросов было 195216, а самый "частый" ip-адрес повторялся аж 311 раз. Т.е. limit src-addr тут не поможет... Эт вообще на open proxies abuse похоже. Адреса - в лист, лист - в ipfw. вопрос будет исчерпан (был такой инцидент).
Нда. за шо эт их так... -- Best regards, Paul Arakelyan. =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message
participants (8)
-
Denis P. Khripun
-
Dmitry Alyabyev
-
Dmitry Kiselev
-
George L. Yermulnik
-
Igor Karpov
-
Igor Khasilev
-
Michael Petuschak
-
Paul Arakelyan