NAT-ы все еще живы

Я тут позакручивал гаек на фаерволе. Поставил, что с одного IP должно быть не более 30 одновременных коннектов ко всем доменам сайта. По идее браузер по стандарту имеет право открывать до 4 коннектов на домен. Если сильно подкрутить настройки - до 10. Ну плюс доменов два. Должно хватать. Оказалось - нет. Пока дрых - полочилось около 10 ip-шников. С настоящими юзерами. То ли провайдер у них жадный, то ли в гости толпой навалились. Увеличил предел до 100 коннектов, убрал блокировку, оставил только лог.

Если кто нарвется на результаты моих экспериментов, пугаться не надо 😃 . Работает примерно так: при срабатывании каких-то условий, IP-адрес полностью блокируется на 5 минут. Потом отлипает обратно, если активность пропала.

UPD.

Похоже, дело было в Opera Mini, которая пускает всех (регионами) через 1 прокси. Но ей давно пора провалиться в ад 😃 . Занес пока несколько оперных проксей в белый список. Еще посмотрю несколько дней, какие адреса засветятся, потом буду думать.

Надо бы еще организовать парсер логов ошибок nginx, но че-та-как-та готового не нашел 😃 . Самое правдоподобное тут, но мне не нравится, что все время подрезается лог ошибок. Если кто знает готовые удачные варианты - дайте знать.

Для оперы мини, кстати, можно тоже скрипт написать - ставить IP не сразу в бан, а в отдельную очередь. Потом по крону резолвить адреса, и перемещать либо в белый список, либо херить окончательно. Может кто будет для себя такое делать? Я в баше не очень, а на php как-то монструозно слишком.

  • 805
Comments
AlcoNaft43
  1. Ну учитывая конец пространства IPV4, наты будут актуальнее и актуальнее, ибо V6 идет со скрипом.
  2. У оперы вообще то есть режим “турбо”, когда трафик идеет через проксю сжатый, так что это не только Мини.
evgenyl

Похоже, дело было в Opera Mini, которая пускает всех (регионами) через 1 прокси. Но ей давно пора провалиться в ад …

хе хе +100500 😈
А еще у нас например все повально сидят на 3G модемах, там тоже все за натом.

Vitaly

Нат сам по себе не проблема. Нормальные провайдеры делают на выходе пул адресов, и динамически их тусуют. Проблема когда толпу народа через 1 адрес пуляют.

evgenyl

Кстати у меня есть парсер логов nginx самописный на питоне, подучишь питон )

Vitaly

Это не проблема. Можете кинуть на gist, pastebin или еще куда?

Я фильтровал “на коленке” вот такими командами: pastebin.com/NSjpiwMz . Но мне не нравится, что эта метода каждый раз зануляет лог. Если поставлю в крон - не смогу другие ошибки продакшена смотреть.

iptables тут: www.linux.org.ru/forum/admin/5884407 . Но оно бы проканало на последней атаке только частично. Там создавали не очень много http-коннектов (keep-alive), но но через них слали много запросов и забивали php. Поэтому пришлось именно логи парсить - лимиты на зоны там прописаны.

evgenyl

Я напишу тебе в личку.

Vitaly

Лучше на мыло, vitaly@самизнаетегде

evgenyl

ок