LINUX.ORG.RU
ФорумAdmin

apache - трысячи открытых конектов.


0

0

проблема заключается в следующем. постараюсь описать общими словами. периодически заклинивает апач, наглядно это можно посмотреть в ServerStatus, там открывается максимальнок количество процессов в столбце "Request" пишется "..reading..", количество процесссов открывается ровно столько, сколько указано в конфиге в "MaxClients" будет указано 1024 - откроется 1024 процесса в состоянии "..reading.."

потом через какое-то время апача попускает, он закрывает все эти конекты, и опять нормально работает.

есть ещё одна странность, которую я заметил: если сделать netstat -na | grep ':80' | wc -l количество конектов не бывает меньше 1.500. частенько подскакивает до 3.000!!!

какие-то нереально заоблачные цифры. и это так ВСЕГДА!!! в постоянном режиме столько отновременно приконекченых соединений.

они все в состоянии "TIME_WAIT"

помогите пожалуйста разобраться, в чём проблема.

anonymous

Ответ на: комментарий от I3rain

а как от него можно защититься? или хотя бы вычислить какой домен ддосят. там на одном ИП несколько десятков доменов висит.

попробовал tcpdump -xx -i eth1:1 -n dst port 80 но там слишком много. вообще не понятно ничего к сожалению =(

anonymous
()

1.KeepAlive включен ?
2.смотришь в server-status какой URL досят и грепаешь его в access.log/error.log ->выбираешь оттуда ИПы и их через iptables банишь
скрипт пишется за 5 минут.

dreamer ★★★★★
()
Ответ на: комментарий от dreamer

KeepAlive - выключил, когда начались эти проблемы, думал поможет. сейчас выключен.

посмотреть в server-status урл по которому досят не могу, в этом то и вся проблема. там вместо УРЛа написано "..reading.." и так и висит этот "..reading.." - пока по таймауту не отвалится. там просто открываются соединения на 80 порт и всё... после открытия соединения сам ХТТП запрос НЕ кидают.

anonymous
()
Ответ на: комментарий от dreamer

Согласен, что похоже на DDoS.
С похожей проблемой столкнулся на прошлой недели, только с postfix.
Было более 300 конектов в режиме TIME_WITE, в результате сервак перестал справляться отвечать на запросы.
Удалось привести сервак к рабочему стостоянию при помощи iptables.
Первое, что я сдела - это запретил более одного конекта с одного ip:

iptables -A FORWARD -p tcp --syn --dport smtp -m connlimit --connlimit-above 1 -j DROP

После чего система стала постепенно переходить в рабочее состояние, уменьшив число конектов в три раза.
Попутно была прочитаны статью по вариантам и с web-серверами, вот ссылки:
http://www.lug.am/index.php?action=articles&do=single&id=473
http://www.opennet.ru/tips/info/798.shtml
http://www.opennet.ru/base/net/sendmail_rate_script.txt.html

Думаю, что решений данной проблемы может быть много, поэтому хочется почитать кто какие еще использует варианты.

av
()
Ответ на: комментарий от av

>Было более 300 конектов в режиме TIME_WITE, в результате сервак перестал справляться отвечать на запросы.

Что у тебя за железо? Или это postfix такое дерьмо?

sdio ★★★★★
()
Ответ на: комментарий от dreamer

dreamer - я ещё раз говорю, что нету никаких ссылок в логе. просто открывается соединение по 80 порту и всё... висит пока по таймауту не умрёт... сам хттп запрос НЕ посылается... следовательно никаких ссылок ни в каких логах найти нельзя.

av - спасибо... ща буду изучать.

anonymous
()
Ответ на: комментарий от anonymous

или меня глючит, или это похоже на результаты скана nmap'ом ?

isden ★★★★★
()
Ответ на: комментарий от sdio

> Что у тебя за железо? Или это postfix такое дерьмо?
:)
Железка: P IV (1700), mem=512, postfix=2.1.5-9
Сейчас в среднем 100-100 конектов висит, из них около 30 в режиме TIME_WITE. За сутки при такой активности postfix обработал около 7000 писем, которые смогли postgrey преодолеть.

av
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.