netwind: Boris A Dolgov
1 - это реально дебилом нужно быть, чтобы добровольно терять информацию об IP и заниматься блокировкой ботов. Так не бывает.
2 - понимаю, но это не отменяет всех ужасов C/C++.
1) Вероятность того, что один из ста пользователь ната - бот в сто раз больше, чем вероятность того, что пользователь, который хотел пойти к нам на сайт и был заблокирован из-за соседа - бот.
В конце концов, никто не отменяет блокировку на FW. Но если, например, за 4 часа пришло 10% ддос-запросов и 90% нормальных, то такой ip нельзя блокировать.
2) если есть куча свободных ресурсов (а так и будет), то интереснее анализировать поведение ботов, выдавая им какие-нибудь ошибки или специальные страницы вроде бесконечного яваскрипта, но выясняя критерии простого обнаружения "ботности".
netwind: myhand, чтобы не писать свои модулу для nginx на С, на котором только курсовые пишут и линуксоиды.
Так можно придумать больше гибкости и потенциальных эвристик.
К nginx можно и на c++ писать. В конце концов, написать можно маленькую прослойку, которая определенным образом будет вызывать большую программу на другом языке.
Я когда-то пытался писать систему, которая будет заниматься примерно этим, только более хитро.
После кучи бенчмарков выяснилось, что пытаться что-то постфактумно делать - намного сложнее и дороже - надо распарсивать лог (хотя формат я делал несколько более распарсиваемый), кроме того - осуществлять связь между результатами парсинга логов и вебсервером (либо файлами и ифами в конфиге нгинкса, либо постоянными релоадами, ничего из этого не является хорошим).
В результате появилось лёгкое fastcgi-приложение, которое на каком-либо основании решает, пропустить запрос или нет. Может быть, когда-нибудь оно заработает так, как этого хочется, но сейчас разбираться в нём приходится эпизодически, когда на какой-нибудь из знакомых проектов приходит ddos.
Но придумывание решения о пропускании оказалось нетривиальным, и всё равно пришлось писать парсирку некрасивых логов, чтобы загружать в неё логи нормальной работы сайта. На бусте получилось не больше 400 строк, что выдаёт классификации клиентов "SEO-грабилка/сапа , обычный пользователь, аномальный пользователь, и т.д." и некоторые критерии для определения классификации для конкретного сайта.
Boris A Dolgov
1 - это реально дебилом нужно быть, чтобы добровольно терять информацию об IP и заниматься блокировкой ботов. Так не бывает.
2 - понимаю, но это не отменяет всех ужасов C/C++.
1) Вероятность того, что один из ста пользователь ната - бот в сто раз больше, чем вероятность того, что пользователь, который хотел пойти к нам на сайт и был заблокирован из-за соседа - бот.
В конце концов, никто не отменяет блокировку на FW. Но если, например, за 4 часа пришло 10% ддос-запросов и 90% нормальных, то такой ip нельзя блокировать.
netwind, исключения:
1) NAT
2) если есть куча свободных ресурсов (а так и будет), то интереснее анализировать поведение ботов, выдавая им какие-нибудь ошибки или специальные страницы вроде бесконечного яваскрипта, но выясняя критерии простого обнаружения "ботности".
myhand, чтобы не писать свои модулу для nginx на С, на котором только курсовые пишут и линуксоиды.
Так можно придумать больше гибкости и потенциальных эвристик.
К nginx можно и на c++ писать. В конце концов, написать можно маленькую прослойку, которая определенным образом будет вызывать большую программу на другом языке.
Я когда-то пытался писать систему, которая будет заниматься примерно этим, только более хитро.
После кучи бенчмарков выяснилось, что пытаться что-то постфактумно делать - намного сложнее и дороже - надо распарсивать лог (хотя формат я делал несколько более распарсиваемый), кроме того - осуществлять связь между результатами парсинга логов и вебсервером (либо файлами и ифами в конфиге нгинкса, либо постоянными релоадами, ничего из этого не является хорошим).
В результате появилось лёгкое fastcgi-приложение, которое на каком-либо основании решает, пропустить запрос или нет. Может быть, когда-нибудь оно заработает так, как этого хочется, но сейчас разбираться в нём приходится эпизодически, когда на какой-нибудь из знакомых проектов приходит ddos.
Но придумывание решения о пропускании оказалось нетривиальным, и всё равно пришлось писать парсирку некрасивых логов, чтобы загружать в неё логи нормальной работы сайта. На бусте получилось не больше 400 строк, что выдаёт классификации клиентов "SEO-грабилка/сапа , обычный пользователь, аномальный пользователь, и т.д." и некоторые критерии для определения классификации для конкретного сайта.
Странные бенчмарки. Либо они не умеют писать на других ЯП грамотно.
Интересное решение в debian.
И на нём нормально работают программы, слинкованные с /lib/?
slackware - выше
fedora (значит, вероятно, и rhel):
[root@serv ~]# ls -la / | grep lib
dr-xr-xr-x. 13 root root 4096 Jan 17 17:44 lib
dr-xr-xr-x. 10 root root 12288 Jan 7 03:12 lib64
[root@serv ~]# file /lib/ld-*
/lib/ld-2.12.90.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
/lib/ld-linux.so.2: symbolic link to `ld-2.12.90.so'
[root@serv ~]# file /lib64/ld-*
/lib64/ld-2.12.90.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
/lib64/ld-linux-x86-64.so.2: symbolic link to `ld-2.12.90.so'
Так как тема - про debian, то Ваш метод работает, но в общем случае - нет.
Не кормим, не кормим :)
Boris A Dolgov, а /lib64 на 32 битной системы вообще бывает?
Не бывает, так что это - ещё один признак. Но Вы предложили проверить файл из /lib, который заведомо 32битный, если папки lib и lib64 разделены.
Zawqr, multilib:
borisko@vaio:~$ file /lib/ld-*
/lib/ld-2.12.1.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
/lib/ld-linux.so.2: symbolic link to `ld-2.12.1.so'
borisko@vaio:~$ file /lib64/ld-*
/lib64/ld-2.11.1.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
/lib64/ld-2.12.1.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
/lib64/ld-linux-x86-64.so.2: symbolic link to `ld-2.12.1.so'
Кроме заголовка полезно читать ещё само сообщение.
Но, по крайней мере, это лучше, чем стандартное "пишите надо смотреть".