АААА!!! Китайцы атакуют!!! Дайте айпи России!!!

12
mustafa
На сайте с 28.10.2005
Offline
202
3755

Такого доса, как сегодня я еще не видал :madd:

15:08:50 up 1:12, 2 users, load average: 124.74, 158.23, 106.48

где можно взять айпихи России? Как бороться? mod_geoip дает почти ту же нагрузку... Ща закрываю все через iptables - но это ненадолго... Они сети айпих меняют быстрее чем я успеваю забанить.... Что делать?

I
На сайте с 22.10.2005
Offline
58
Iso
#1

В автоматическом режиме банить. Если с одного айпи поступило более 100 запросов за минуту, более 1000 за 10 минут или более 10000 за час, то вносить в список плохих айпи на 10 минут, час и сутки, соответственно. Все эти веса правятся руками, чтобы не потерять "настоящих" пользователей, но быстро пресечь атаку.

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

Как-то так.

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

Хорошего списка айпи России не имею :( Но не верю, что он поможет против атак. Он поможет только потерять клиентов, которые пользуются всякими акселераторами скорости при работе с инетом и т.д...

mustafa
На сайте с 28.10.2005
Offline
202
#2
Iso:
В автоматическом режиме банить.

Я так понял, что на пхп имелось ввиду... Это хорошо когда пяток сайтов на сервере. А если их около 100?

Можно ли как-нибудь iptables подружить с mod_geoip?

Щас поборол их все-таки с помощью mod_geoip.

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !(RU|US|UA|FR|UK)

RewriteRule ^.*$ http://msn.com/

Но здесь не учитываются юзеры, для которых не определена страна, как в модреврайте прописать сравнение с пустой строкой в этом же условии?

D
На сайте с 08.06.2006
Offline
2
#3

список ru-сетей засунь в htaccess и будем все счастье.

если нужен список, вышлю на мыло.

pro-maker
На сайте с 08.12.2003
Offline
281
#4

mustafa, а что у тебя китайцы смотрят? :)

mustafa
На сайте с 28.10.2005
Offline
202
#5

pro-maker, они досят меня :( по 500 запросов в секунду :(

mustafa
На сайте с 28.10.2005
Offline
202
#6
dewil:
список ru-сетей засунь в htaccess и будем все счастье.
если нужен список, вышлю на мыло.

это будет медленно работать...

I
На сайте с 22.10.2005
Offline
58
Iso
#7
mustafa:
Я так понял, что на пхп имелось ввиду... Это хорошо когда пяток сайтов на сервере. А если их около 100?

ок, я так понял, что надо, чтобы было быстро... тогда можно так вылечить:

1) настроить хттп-сервера, чтобы писал логи от всех сайтов в один файл.

2) написать прогу, например на сях, чтобы анализировала последие 10 Мб этото лога по предложенным выше признакам.

3) настроить крон, чтобы пускал эту прогу раз в минуту.

В результате будет формироваться список плохих айпишников, который уже прикручивается к хттп-серверу (вроде у всех есть такая фича).

Например, для апача делается так:

Плохие IP храним в blacklist.txt в виде

1.2.3.4 b

2.3.4.5 b

3.4.5.6 b

А апачу пишем:

RewriteEngine on

Rewritemap ipmap txt:/path/to/blacklist.txt

RewriteCond ${ipmap:%{REMOTE_ADDR}} =b

RewriteCond %{request_uri} !=/sorry.html

RewriteRule .* /sorry.html [R,L]

Как-то примерно так или можно даже лучше.

Или с iptables сервера поработать, чтобы хттп-сервер не грузить.

Можно почитать http://aplawrence.com/Words2005/2005_05_01.html - там внятные вещи есть.

Нагрузка на сервер будет небольшая (разобрать 10 Мб лога по признаку только IP не долго), а самые активные айпишники будут забанены.

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

Желаю Вам успехов в борьбе с досерами!

D
На сайте с 08.06.2006
Offline
2
#8
mustafa:
это будет медленно работать...

тогда в ipfw

mustafa
На сайте с 28.10.2005
Offline
202
#9

решил проблему попроще :)

по крону запускаем этот пхпшник:


<?
function dos()
{
copy("/www/htdocs/.htaccess.dos /www/htdocs/.htaccess"); // антидосовый mod_rewrite
}

$w=exec("/usr/bin/w | tail -n 1");
if (!preg_match("/(\d+\.\d+)s/", $w, $out))
exit(0);
if ($out[1]>10)
dos();
?>

в хтаксесе лежит:

RewriteEngine on

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(RU|US|UA|FR|UK|)$

RewriteRule ^.*$ http://msn.com/

Смысл: как только нагрузка вырастает до огромных размеров, посылаем нах... всех кто не из России, Украины и др хороших стран :) Потом опять принимаем всех подряд юзеров. В случае атаки - да небольшой процент юзеров потеряется - но лучше уж так (тем более что атаки не такое уж частое дело)...

pro-maker
На сайте с 08.12.2003
Offline
281
#10
mustafa:
как только нагрузка вырастает до огромных размеров, посылаем нах... всех кто не из России, Украины и др хороших стран

избирательно, белорусам и казахам не повезло :)

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий