Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Разное

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывести сайт из строя потоком обращений к нему
 
 автор: Владимир55   (17.12.2007 в 23:05)   письмо автору
 
 

Когда на работающем сайте одновременно присутствует полсотни посетителей, то меня это не только не удивляет, а даже радует, ибо это означает, что люди ходят по страницам и читают то, что их заинтересовало. Но когда на выключенный сайт непрерывно ломятся сто с лишним человек, и по этой причине вследствии недостатка памяти захлебывается аккаунт, то возникает и другая мысль: не является ли это их единственной целью? Ведь если страница не открылась, то серфер незамедлительно идет дальше, так что при обычном потоке посетителей одновременных обращений к выключенному сайту должно быть не слишком много.

Ведь так?

Если же взглянуть на показания Apache Server Status, то можно заметить, что IP адреса все разные, но примерно для 100 из 115 VHost - unavailable, и Request - GET /favicon.ico HTTP/1.1, а не конкретная страница.

Может, это какая-то атака?

   
 
 автор: cheops   (17.12.2007 в 23:43)   письмо автору
 
   для: Владимир55   (17.12.2007 в 23:05)
 

Да, это может быть DDos-атакой (атака на отказ обслуживания).

   
 
 автор: Владимир55   (18.12.2007 в 00:13)   письмо автору
 
   для: cheops   (17.12.2007 в 23:43)
 

Надо же, как интересно!

И что делают в таких случаях?

   
 
 автор: cheops   (18.12.2007 в 00:22)   письмо автору
 
   для: Владимир55   (18.12.2007 в 00:13)
 

Блокируют IP-адреса откуда идут обращения средствами сервера Apache (Apache перехватывает обращения ещё до обращения к PHP-скриптам).

   
 
 автор: Trianon   (18.12.2007 в 00:26)   письмо автору
 
   для: Владимир55   (17.12.2007 в 23:05)
 

Distributed Deny of Service
первая буква (слово) означает , что атака ведется не с конкретного IP, а с массы разных адресов.

   
 
 автор: Mookapek   (18.12.2007 в 00:30)   письмо автору
 
   для: Trianon   (18.12.2007 в 00:26)
 

Я еще слышал такое название "смертельный пинг". Это и есть DDoS - атака?

   
 
 автор: Владимир55   (18.12.2007 в 00:49)   письмо автору
 
   для: Mookapek   (18.12.2007 в 00:30)
 

Обнаружил у себя такой сервис, как Брэндмауэр. Если в него внести нежелательные адреса, то, как пишется в хелпе, с этими адресами соединения не будет.

Как полагаете, это является защитой?

   
 
 автор: cheops   (18.12.2007 в 00:53)   письмо автору
 
   для: Владимир55   (18.12.2007 в 00:49)
 

Да, если обращений мало (100 обращений - это мало), то это действительно является выходом, хотя конечно лучше выяснить кто обращается и почему это доставляет проблемы.

   
 
 автор: Владимир55   (18.12.2007 в 01:14)   письмо автору
 
   для: cheops   (18.12.2007 в 00:53)
 

"лучше выяснить кто обращается и почему это доставляет проблемы"

В каком смысле? По адресу найти человека и спросить, чего ему надо? Или что?

   
 
 автор: glsv (Дизайнер)   (18.12.2007 в 06:24)   письмо автору
 
   для: Владимир55   (17.12.2007 в 23:05)
 

С одной стороны похоже. А с другой стороны: какой смысл злоумышленникам делать запросы к /favicon.ico? Хочешь положить сайт - делай запросы к php-скриптам, тяжелым страницам, ну уж никак не к маленькой безобидной картинке. Т.е.смотрите какая картина если предположить DDOS: с одной стороны /нехорошие люди/ взяли на себя немалый труд и затраты на организацию DDOS, но вместо того, чтобы направить запросы к тяжелым скриптам или просто к тяжелому контенту или сразу к нескольким десяткам скриптам (для маскировки) они стали дергать малюсенький /favicon.ico (выдать /favicon.ico серверу многократно проще). Смысла в таких действиях - ну никакого.

Я лично склоняюсь в сторону поиска другого объяснения этой ситуации.

>Но когда на выключенный сайт непрерывно ломятся сто с лишним человек
Как происходит выключение сайта? Вы отключаете виртулаьный хост? Если так, то "VHost - unavailable" логичен. Если VHost - unavailable всегда, то почему Вы считаете, что запросы идут именно на выключенный сайт? Если у Вас несколько сайтов, то запросы пойдут на первый загруженный виртуальный хост.

Сколько времени прошло с момента выключения до того момента когда Вы промониторили кол-во запросов? Чтобы кол-во запросов спало и люди поняли, что сайт неработает нужно выждать некоторое время. Потому что если промониторить сразу после отключения, то кол-во запросов может и возрасти. Сайт был и пропал - посетители в недоумении жмут рефреши, браузеры при каждом рефреше требуют выдать им /favicon.ico.

   
 
 автор: Владимир55   (18.12.2007 в 11:49)   письмо автору
 
   для: glsv (Дизайнер)   (18.12.2007 в 06:24)
 

"С одной стороны похоже"
Супруга выдвинула гипотезу, что могут быть люди, заинтересованные в блокировке одного из моих сайтов, который стабильно держит первое-третье место в профессиональном рейтинге, да еще и открывает людям некие профессиональные "тайны".
Взглянув на дело под этим углом зрения, я и решил проконтролировать IP посетителей. Для этой цели выключил пользователя, к которому относится соответствующий сайт (хотя реальным пользователем акаунта являюсь я один, но сайты все же разделены по условным пользователям для удобства обращения к ним по FTP), а потом, для верности, выключил и всех остальных, но server-status установил только для интересующего сайта.

Первые строки server-status содержали мой реальный VHost и соответствующий адрес, например GET /sf/n16.htm HTTP/1.0. А примерно сотня следующих строк содержала VHost - (unavailable), и какой-нибудь безликий адрес, например Request - GET / HTTP/1.0 или favicon.ico, которого у меня нет.

Если я принудительно сбрасывал эту сотню процессов, то она немедленно восстанавливалась в полном объеме. Если включить сайт, то на нем оказывалось столько посетителей, сколько было в первых строках server-status, и которые запрашивали конкретные страницы. А остальные упорно долбились неизвестно зачем, и при этом до отказа загружали память. Список этих "долбежников" оставался практически тем же и через час, и через два часа. А память они загружали настолько плотно, что вскоре я даже утратил доступ к Панели управления.

Тогда я прикупил памяти и атака (если это была атака) прекратилась. Сейчас на сайте 22 посетителя, а потребляется всего лишь 52 Мбайта памяти.

Вообще-то, я даже благодарен этим ребятам, ибо благодаря им я кое-чему научился. К тому же, сервер получил больше памяти, что улучшит его работу, и оснастился прокси. Да и сеть от моих сайтов денек отдохнула, что тоже неплохо. Как говорил Ходжа Насреддин: "Если у тебя есть фонтан, заткни его - дай отдохнуть и фонтану".

А еще, пользуясь случаем, я хочу поблагодарить лично Вас и всех других участников этого замечательного Форума, которые помогли мне разобраться с этой проблемой!

   
 
 автор: elenaki   (18.12.2007 в 11:57)   письмо автору
 
   для: Владимир55   (18.12.2007 в 11:49)
 

Как говорил Ходжа Насреддин: "Если у тебя есть фонтан, заткни его - дай отдохнуть и фонтану".

по-моему, это Козьма Прутков говорил

   
 
 автор: glsv (Дизайнер)   (18.12.2007 в 12:10)   письмо автору
 
   для: Владимир55   (18.12.2007 в 11:49)
 

>server-status установил только для интересующего сайта.
Хм... раз у Вас один сервер, то сервер статус должен был показывывать инфу по всему серверу. Его просмотр может быть разрешен для одного сайта, но инфа идет по всему серверу. Т.е. Вы видели весь свой Apache, а не один единственный сайт.

>А примерно сотня следующих строк содержала VHost - (unavailable), и какой-нибудь безликий адрес, например Request - GET / HTTP/1.0 или favicon.ico, которого у меня нет.

Подождите, вся эта сотня строк запрашивала именно favicon.ico или были варианты?
Дело вот в чем. Смотрю сейчас свой статус.
Да, внизу много-много строк с GET / и т.п., но реально этих процессов нет. Они уже отработали и умерли. У них нет PID-а (смотрите второй столбец).
Процессы без PID - это простаивающие процессы (но сжирающие память). Если таких процессов всегда много, то Вам нужно исправить конфиги Apache, уменьшив кол-во запускаемых процессов. Вам просто столько не нужно. Тем самым Вы сэкономите потребление памяти.

>и оснастился прокси
Если Вы действительно, установили легкий прокси, то неимоверно облегчили жизнь Apache и сэкономили много памяти.

   
 
 автор: Владимир55   (18.12.2007 в 12:35)   письмо автору
 
   для: glsv (Дизайнер)   (18.12.2007 в 12:10)
 

*Т.е. Вы видели весь свой Apache*
Получается, что так.

*вся эта сотня строк запрашивала именно favicon.ico или были варианты?*
Это сейчас уже точно не вспомнить. Варианты, может быть и были, но количество favicon.ico бросалось в глаза. Может быть потому, что у меня их нет.

*У них нет PID-а (смотрите второй столбец).*
Да, именно так! И сейчас есть три таких строки.

*Вам нужно исправить конфиги Apache, уменьшив кол-во запускаемых процессов*
К сожалению, Apache пока что мне не по силам. В том смысле, что я не знаю, ни что исправлять, ни где это делать...

*Если Вы действительно, установили легкий прокси*
Поверх всего установил nginx. Это годится?

   
 
 автор: glsv (Дизайнер)   (18.12.2007 в 12:39)   письмо автору
 
   для: Владимир55   (18.12.2007 в 12:35)
 

>Поверх всего установил nginx. Это годится?
Угу, даже если он у Вас сам статику не раздает - все равно здорово облегчит жизнь Apache.
Раньше все медленные клиенты (люди на dialup, закачка больших файлов) висели на толстом Apache, сжирая память. Пока клиент не получит целиком файл - процесс Apache занят. Теперь Apache их быстро отдает легкому ngnix и его процессы снова готовы к приему запросов.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования