Dimka

Рейтинг
240
Регистрация
07.11.2000

Думаю взять сервер.

Как сейчас с каналом, с атаками? Читал, что общая защита канала от атак режет и нормальных пользователей. Или это в прошлом?

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

Будет два map:

1. первый проверят ЮзерАгент на соответствие нужным ботам (гугл, яндекс...)

2. с переменной с нужным ботом - делаем проверку заголовков.

---------- Добавлено 13.02.2017 в 17:07 ----------

Dram,

Dram:
Отсев ботов ПС от всего остального на 100% делает это

Чтобы не заблокировать новые ip ботов.

Dram:
Что на счет живых юзеров - все ли браузеры отвечают этими заголовками?

Нет, не все.

В первую очередь это для поиска ботов, кто притворяется Гуглботом, Яндексботом.

Придумал еще вариант защиты - анализ Accept-Encoding в заголовках.

Переменная в конфиге nginx: $http_Accept-Encoding

Гугл, Яндекс, Маил - стремятся получить сжатый контент (проверил в логах) и указывают в заголовке "Accept-Encoding".

Не все, но большинство ботов (особенно самопальных) желают получить несжатый контент и ничего не указывают в заголовке (также проверил гипотезу в логах)

Кроме accept-encoding: gzip, deflate - Гугл возможно уже указывает (или будет) в заголовке sdch (не проверил).

pupseg:
Не верно понимаете.
Принимаете вы пакет, или не принимаете - это ваше дело. Провайдер смаршрутизировал к вам трафик. Пакет пришел в вашу сетевую карточку и попал в tcp\ip - стек вашей ОС. Далее уже файерволл его обработал.

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

Вопросы:

1) если ip атакующего заблокирован: iptables -A INPUT -s 1.2.3.4 -j DROP - трафик будет - только попытки соединения, без передачи тела запроса?

2) если ip не заблокирован, nginx-у нужно принять весь входящий запрос, чтобы сказать в ответ 405 Not Allowed - верно? Или можно как-то ограничить?

---------- Добавлено 06.02.2017 в 02:53 ----------

smbbws:
client_max_body_size 100m;
В этом примере максимальный пост запрос 100 мегабайт, переделай под свои нужды.
Меньше мегабайта лимит вроде не устанавливается.

1 Мб - это по умолчанию, можно менее.

client_max_body_size 32k;

правда, не уверен в директиве, т.к. она просто смотрит на Content-Length.

И стоит:

limit_except GET {

deny all;

}

(принимать только GET и HEAD)

Перепроверил, слова php в моем посте нет. Как и самого php в этой проблеме

kaskentbobel:
Сбор фраз по Рамблеру не работает уже или я туплю?

Там больше сам Рамблер не работает. Например, январь 2017.

Нужно посмотреть руками в Рамблере выбранный месяц, а уже потом выбрать его в КК.

Dram:
Я пробовал проверять куку _ym_isad которую ставит яндекс

Тестировал. Плохо на нее ориентироваться.

У многих юзеров нет этой куки - т.к. многие блокировщики рекламы лочат Метрику.

Dram:
А не знаете как такой фрмат подсетей 5.9.0.0 - 5.9.255.255 всунуть в geo nginx ? Там ведь вроде диапазоны нельзя?

При нажатии на каждый IP:

https://myip.ms/view/ip_ranges/2325521/194.42.176.0_194.42.191.255

отдает два варианта:

IP Range Start: 194.42.176.0

IP Range End: 194.42.191.255

CIDR: 194.42.176.0/20

---------- Добавлено 23.01.2017 в 23:28 ----------

Или при нажатии на [+] слева от каждой записи.

Dram:
Конечно лучше, но я не смог нарыть даже подсети Хедзнера и OVH хотя бы...

Hetzner:

https://myip.ms/browse/ip_ranges/1/ownerID/45081/ownerID_A/1

OVH:

https://myip.ms/browse/ip_ranges/1/ownerID/7593/ownerID_A/1

Всего: 764