myhand

Рейтинг
278
Регистрация
16.09.2009
Andreyka:
Капчу при первом запросе с IP, ввел - ок, не ввел - неок

идея хороша всем, кроме необходимости заносить в whitelist кучу IP,

с которых идут "хорошие" боты.

ну и пользователей достает еще. т.е. минимум - просить надо капчу не при

"первом запросе", а после того как запросы с данного IP стали "подозрительны".

и обходится она, было бы желание у ddos-еров ;) просто такая защита еще не популярна.

lingod:
прописано что если картинка не найдена то пересылать запрос в апач
error_page 404 = @fallback;

это можно поправить if-ом внутри location со статикой.

в лог /var/www/httpd-logs/mysite.ru.access.log - 404 ошибка попадает _дважды_: один раз

пишет nginx (именно со статусом 404) - другой раз - апач, которому в итоге

проксировали запрос (статус может и другим быть).

Brut, скорее всего "оптимизация" с раздачей статики вам нафиг не сдалась

и проще все сразу отправить на бакенд (оставить только "location /").

Himiko:
Одна их умных идей, котрая позволит корректно считать трафик по сайтам при установленном nginx, а так же чтобы awstats/webalizer более корректно отображали статистику.

так через nginx трафик все-равно идет. что мешает логгировать _все_ там?

идею писать в один лог-файл _разными_ демонами - умной назвать нельзя.

Brut, судя по конфигу - у вас именно случай, о котором писал Himiko.

Himiko:
К примеру, панель ISPManager так его настраивает, чтобы все запросы учитывались, а не только от Apache.

кстати, да. одна из идиотских идей в ISPManager :D

ну может nginx просто проксирует запросы к апачу?

конфиг nginx показать можно?

madoff:
прикладной уровень это ssh ftp http DNS и т п,это всё iptables понимает, так как весь перекладной уровень работает через сетевой уровень, который выходит на канальный уровень,а канальный уровень на физический..

как отличите в iptables HTTP GET от HTTP POST - так и поговорим.

zexis:
Но такой ддос наверное будет стоить довольно дорого заказчику. И таких ботнетов не много.

от самого бота интеллекта много не нужно. думаю, определяющим фактором цены является размер ботнета. а так - достаточно обычная схема.

zexis:

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

увы, нет. только не блокируя сразу на файерволе. реально - в бан

nginx-а попадают и нормальные пользователи, поэтому хорошо предусмотреть

способ занесения IP таких в whitelist (например, через капчу на 403/50x страничке).

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

netwind:
Никуда они не исчезнут. Можно время сократить через sysctl net.ipv4.tcp_fin_timeout
Вот во freebsd есть sysctl net.inet.tcp.fast_finwait2_recycle, это поинтересней.

reuse && recycle для time_wait есть и в линукс:

/proc/sys/net/ipv4/tcp_tw_reuse

/proc/sys/net/ipv4/tcp_tw_recycle

Outsourcenow:
FIN_WAIT от TIME_WAIT немножко так отличаются :-)

ага, совсем немножко :D

в общем, ТС стоит забить на это, если сокетов в таком состоянии

не слижком уж много. а если много (порядка

/proc/sys/net/ipv4/ip_local_port_range) - еще можно раскидать сайты

по нескольким IP-адресам. плюс - включить reuse&recycle.

Outsourcenow:

Кроме того, в линуксовом ip-стеке по-дефолту работает nolocaltimewait, если мне не изменяет память.

изменяет.

netwind:

Кстати, как я понимаю, у ТС зачем то ipv6-сокеты. для них настройки с таким же названием не видно.

так это фича апача - Listen 80 слушает на _всех_ ip, в том числе и ipv6 (настройки

reuse/recycle отдельной для ipv6-сокетов нет).

если нафиг не нужно IPv6 - советую прописать в Listen явно слушаемые IP-адреса.

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

это ладно, когда просто индекс дергают (хотя и тут ваш файервол курит в сторонке - ведь

про URI он _ничего_ не знает). а ведь бот умный пошел - сымитировать

нагрузку от реальных пользователей умеет. зашел на индекс, прошелся по паре ссылок,

статику потянул - ума тут большого ему не надо.

нельзя резать такие вещи на уровне файервола - он ничего о прикладном

протоколе не знает.

а масштабирование поможет, конечно, до какой-то

степени (пачка балансеров, пачка прокси, пачка бакендов - вот только

делать все это исключительно для защиты от ddos - бросать деньги на ветер).

netwind:
а ТС просто адаптирует функцию разбора лога. Все остальное уже написано. В этом сила самодельного велосипеда.

уверен, что не адаптирует. HTTP и, например, SMTP - очень разные прикладные

протоколы. то, что годится для одного - с трудом переносится на другой.

в сухом остатке (на то, "что уже написано") - будет что-то типа

статистики соединений с нашим сервером для каждого клиента.

Всего: 4890