- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Блокирую наглых ботов в файле nginx.conf в секции server прописано:
if ($http_user_agent ~* msnbot|bingot) {return 444;
}
В логах следов заблокированных ботов нет.
Но, команда netstat показывает, соединение с ними в состоянии TIME_WAIT
Эти соединения висят долго. Хотелось бы, что бы блокировка была такая, что бы ресурсы освобождались сразу.
Как это можно сделать?
Может какой то другой код ответа давать вместо этого return 444; ?
Какая настройка nginx отвечает за время нахождения в состоянии TIME_WAIT?
Не эти?:
Если что вот все настройки :
Попробуйте заблокировать Ip бота через .htaccess
include/net/tcp.h
#define TCP_TIMEWAIT_LEN (60*HZ)
в логах nginx надо смотреть отдает ли 444 указаным ботам - если нет - значит неправильно правило написано - неточно
нужно проверить все боты msn, имеют user-agent "msnbot|bingot" ?
Попробуйте заблокировать Ip бота через .htaccess
не пойдёт.
Блокировка идёт до того как запрос дойдёт до апачи и .htaccess.
---------- Добавлено 28.06.2013 в 12:26 ----------
нужно проверить все боты msn, имеют user-agent "msnbot|bingot" ?
если бы у msn были другие боты, то я бы их видел в аксес логе. но их там уже нет так как блокировка сама по себе работает.
Я это вижу через уменьшения нагрузки
в аксесс лог этих ботов уже нет. Если я например, уберу эту блокировку и сделаю в htaccess 503 или 404, то в аксесс логе боты появятся как посланные на 503 или 404.
в общем, названия юзер agent тут не причём я думаю
---------- Добавлено 28.06.2013 в 12:35 ----------
include/net/tcp.h
#define TCP_TIMEWAIT_LEN (60*HZ)
нет такого файла на сервере
find / -name 'tcp.h' -print
-bash: include/net/tcp.h: No such file or directory
linux debian
или надо как то по особенному искать ?
боту не обязательно иметь юзер-агент, в котором указывать что он бот
нужно посмотреть вышеуказаные ипы (через netstat) и посмотреть как они себя называют в accesslog
еще вариант, что залипли процессы веб-сервера, посмотреть pid через server-status, убить эти процессы и руками сбросить коннект через tcpdrop(тогда и ресурсы освободятся)
return 444 в nginx означает, что не передавая ни байта, закрыть соединение. В логах вы не увидите ничего, верно.
в логах nginx надо смотреть отдает ли 444 указаным ботам - если нет - значит неправильно правило написано - неточно
логе ошибок?
/var/log/nginx/error.log
пустой
этот тоже пустой
/var/log/nginx/access.log
(правда у access.log нет даже за прошлые дни. Где то отключён ? )
---------- Добавлено 28.06.2013 в 13:06 ----------
в логах nginx надо смотреть отдает ли 444 указаным ботам - если нет - значит неправильно правило написано - неточно
лог включил.
Вижу например это:
199.30.20.128 - - [28/Jun/2013:14:03:40 +0400] "GET /robots.txt HTTP/1.1" 444 0 "-" "msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)" "-"
значит правило написано точно?
---------- Добавлено 28.06.2013 в 13:07 ----------
return 444 в nginx означает, что не передавая ни байта, закрыть соединение. В логах вы не увидите ничего, верно.
ну, в лог nginx вижу, что сервер отдаёт 0 байт
---------- Добавлено 28.06.2013 в 13:22 ----------
боту не обязательно иметь юзер-агент, в котором указывать что он бот
нужно посмотреть вышеуказаные ипы (через netstat) и посмотреть как они себя называют в accesslog
в netstat пишет
hosts.net:www msnbot-157-55-35-:52675 TIME_WAIT
Как отсюда узнать ip ?
еще вариант, что залипли процессы веб-сервера, посмотреть pid через server-status, убить эти процессы и руками сбросить коннект через tcpdrop(тогда и ресурсы освободятся)
Вы имеете в виду server-status подключаемы в httpd.conf строчкой
LoadModule status_module modules/mod_status.so
?
он сейчас не включён.
а другого способа нет?
Эти "ресурсы" весят копейки по сравнению с генерацией страниц в CMS
и вот кстати.
В лог nginx нашлась такая строчка
157.55.35.52 - - [28/Jun/2013:14:22:40 +0400] "GET /robots.txt HTTP/1.1" 444 0 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" "-"
а в netstate вот так
hosts.net:www msnbot-157-55-35-:34649 TIME_WAIT
получается он получил свои ноль байт, но всё равно висит?
Сообщение от iamsens Посмотреть сообщение
еще вариант, что залипли процессы веб-сервера, посмотреть pid через server-status, убить эти процессы и руками сбросить коннект через tcpdrop(тогда и ресурсы освободятся)
это наверное тоже не вариант вручную убирать.
---------- Добавлено 28.06.2013 в 14:26 ----------
Кажется разобрался:
Все коннекты в нетстате показывают тех, кто стоит в приёмной кабинета директора нашего завода в очереди к секретарше (TIME_WAIT) , или уже находятся в кабинете директора (ESTABLISHED).
Т.к. директору бингбот уже надоел своими завышенными требованиями, он говорит секретарше, что бы она не пускала бингбота( return 444). Но, о том, что его послали на 3 цифры он узнает только тогда, когда дождётся своей очереди.
Постоянное нахождение бингботов в списке, связано с тем, что он всё равно приходит и приходит в секунду от 3 до 5 раз. Т.е. зависания нет, есть только частое обращение. И бинг(msn)бота мы можем видеть только в состоянии TIME_WAIT.
Здесь всё понятно. Или чего то я упустил?
Выходит, что для уменьшения времени ожидания надо увеличить число допустимых коннетов к nginx (или apache ?).
В apache2.conf есть переменная MaxClients – это не она ?