Назад | Перейти на главную страницу

Кто-то из Китая хочет убить мою пропускную способность?

Кто-то из Китая с двумя разными IP-адресами загружает один и тот же большой файл с моего сервера. Их ip:

Они запрашивают этот файл и скачивают его более 20 раз в минуту.

Что я могу сделать, чтобы предотвратить это? (Я использую gentoo с root-доступом)

И ПОЧЕМУ они так поступают с сайтом, который не имеет ничего общего с Китаем?

ДОБАВИТЬ1:

Другие IPS:

ДОБАВИТЬ2:

глупо то, что они запрашивают только один файл, лол. Или они хотят удалить этот файл (хотя я не понимаю, почему) Или они довольно тупые

ADD3:

Ситуация ухудшается. IP распространяются и из других стран (США и Корея, если www.geobytes.com/iplocator.htm это правильно) И теперь они запрашивают другой файл.

ADD4:

кажется, после того, как они поняли, что я удалил этот файл они перестали атаковать меня. Буду следить за ситуацией.

Начали снова после сна 3-4 минут с тем же файлом (мне повезло). Сложно сказать, почему это происходит

Всего 2 IP-адреса ... Вы можете легко заблокировать IP-адреса с помощью iptables

iptables -I INPUT -s 122.89.45.210 -j DROP
iptables -I INPUT -s 260.210.7.62 -j DROP

РЕДАКТИРОВАТЬ

Поскольку IP-адреса растут, вы можете подумать о чем-то более радикальном. Вам нужно обслуживать китайские IP-адреса? Если нет, вы можете попробовать использовать следующий сайт для помощи в блокировке всей страны. Просто закидывайте результаты в свой файл .htaccess:

http://www.blockacountry.com

Другое редактирование

Есть ли что-то еще общее во всех запросах? Пользовательский агент такой же? Это может легко помочь в блокировании атак.

Я не знаю, какую ОС вы используете на своем сервере, но я предполагаю, что это дистрибутив UNIX (Debian, Ubuntu, Slackware и т. Д.).
Самый простой способ защитить себя от DoS - установить Fail2Ban (http://www.fail2ban.org/wiki/index.php/Main_Page). Легко установить и использовать. Я использую его для защиты SSH, потому что получаю множество атак ssh dos. Программа сканирует файлы журналов и проверяет повторяющиеся сообщения (например, неудачный вход в систему, множество соединений, как в вашей ситуации).

Вам нужно будет немного настроить его, чтобы правильно прочитать файл журнала вашего веб-сервера. Если вам удастся это сделать, вы можете ограничить доступ - то есть вы можете ограничить 50 попыток для запросов GET в 1 секунду 1 ip. При достижении порога IP-адрес блокируется на X раз. Это поможет вам сэкономить полосу пропускания и не беспокоиться, если эта атака будет исходить с другого адреса.

Надеюсь, это вам поможет :)


Изменить 1:

Я вспомнил, что есть модуль для apache, который может ограничивать эти возможности - mod_evasive. Лично я никогда им не пользовался, но многие люди называют его "хорошим материалом". Я нашел для вас учебник, который может вам помочь - http://www.mydigitallife.info/2007/08/15/install-mod_evasive-for-apache-to-prevent-ddos-attacks/ Проверьте это и посмотрите, может ли это удовлетворить ваши потребности.

Что вам нужно сделать, это связаться с вашим провайдером восходящего потока. большинство из них будут обнулять идущие на вас DDoS-атаки; Что касается IP-адресов США, которые сообщают своему интернет-провайдеру, что эти IP-адреса атакуют вас, и они обычно будут разговаривать с пользователем, который обычно является ботом, решающим ваши проблемы, поэтому он в основном поступает из азиатских стран.

Какие эффекты вызывает этот DDoS?

Если это загрузка ЦП, попробуйте переключиться на что-нибудь вроде nginx для обслуживания статического контента.

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

Следует иметь в виду одну вещь: я видел подобные ситуации раньше, иногда это были не атаки, а люди, использующие «ускорители загрузки». Они открывают множество подключений к серверу одновременно, основываясь на (ошибочной) идее, что больше подключений = больше пропускной способности. Чтобы исправить это, я установил nginx на порт 81 и использовал некоторые правила .htaccess для принудительной загрузки содержимого только через nginx. Nginx обрабатывал запросы, не беспокоясь, и мне не приходилось беспокоиться ни о перенастройке веб-сервера, ни о замедлении трафика для законных пользователей.

iptables & ipset для спасения!

Сначала создайте IP Set:

ipset -N Attackers iphash
for ip in $LIST_OF_IP; do ipset -A Attackers $ip; done

Далее составьте правила:

iptables -t raw -I PREROUTING -m set --match-set Attackers src -j DROP

Или, если вы чувствуете зло:

iptables -t raw -I PREROUTING -m set --match-set Attackers src -g trap_attackers
iptables -t raw -A trap_attackers -j NOTRACK
iptables -t raw -A trap_attackers -j ACCEPT
iptables -I INPUT -m conntrack --ctstate UNTRACKED -j TARPIT

Каждый раз, когда появляется новый злоумышленник, добавьте его IP в набор:

ipset -A Attackers a.b.c.d

Вышеуказанное можно автоматизировать, используя комбинацию -m match, -m recent, и -j SET, например -m match --string "GET http://url/to/offending/file" -m recent --seconds 60 --hitcount 2 -j SET --add-set Attackers src

Примечание: Убедитесь, что поддержка raw стол, ipset, и TARPIT все скомпилированы в ваше ядро ​​Gentoo (или как модули).