Заходы на сайт со сторонних сайтов в Я.Метрике

Александр Дружный
На сайте с 17.11.2019
Offline
10
#11
bahinnn #:

описать могу, но как я настраивал у Вас получиться, если сайт на веб сервере nginx, то есть без apache (просто дааавно не использую apache и не пробовал на нем)

Был бы сильно признателен. Здесь опишите или на почту?

Занимаюсь продвижением сайтов - https://boostseo.ru/. Если у вас есть вопросы по SEO, то задавайте - отвечу.
Бахин
На сайте с 26.05.2017
Offline
76
#12

Черт с ним здесь опишу, только сам принцип (как у меня публиковать не буду). Поехали, чтобы это все работает потребуется монотонная работа над логами (в помощь можно использовать вебвизор, если он включен).

Для начала вылавливаем в логах все посещения с соцсетей, через ssh это делать удобнее, пример:

site.log | grep youtube” | grep “//ok.ru” | grep “//t.co” | grep zen.yandex.ru

сравниваем ip, то есть ищем наиболее часто повторяющиеся по маске, например, 222.333.х.х

далее создаем список подсетей в файле, назовите, как вам удобней допустим назвали так ip_bad_soc.conf (лучше всего в дректории /etc/nginx/conf.d) — вносим в него найденные подсети:

222.333.х.х/24 1;

222.334.х.х/16 1;

Создаем в главном конфиге nginx (/etc/nginx/nginx.conf) в секции http:

geo $ip_bad_soc {

default 0;

include /etc/nginx/conf.d/ip_bad_soc.conf;

}

Создаем список соцсетей по рефу с помощью map:

map $http_referer $bad_ref_soc {
default 0;
"~*away.vk.com" 1;
"~*youtube.com" 1;
"~*t.co" 1;
"~*facebook.com" 1;
"~*ok.ru"1;
"~*market.yandex.ru" 1;
"~*zen.yandex.ru" 1;
}

Дальше начинается самое интересное, создаем условия, по которым будут блокаться посещения, например, хотим, чтобы все с соцсетей попадающие в черный список подсетей и с каким-либо user agent блокались (user agen Linux — это все мобилы на андроиде, а не только ПК с линуксом), создаем еще map:

map $http_user_agent $bad_useragent_soc {

default 0;

~*Windows 1;

}

Создаем само условие:

map “$ip_bad_soc: $bad_ref_soc:$bad_useragent_soc” $block_soc {

default 0;

1:1:11;

}

 В скобках единицами указали, что все что указано блокать, то есть это

$ip_bad_soc = [1] блокать, если указать [0] не блокать

$bad_ref_soc = [1] блокать, если указать [0] не блокать

$bad_useragent_soc= [1] блокать, если указать [0] не блокать

В секции server уже настраиваем саму блокировку:

server {

If ($block_soc) { return 444; }

}

# тут по вашему усмотрению, но по моим наблюдениям, лучше рвать коннект, если отдавать какую-то страницу, уроды меняют логику скриптов и создают перенаправление, а отрубив соединение вы не дадите им дальше что-то сделать.

Но это не все, если так настроить блокировку начинают лесть прямыми заходами, тогда, в главный конфиг nginx добавляем:

map $http_referer $null_ref {

default 0;

servernames 0;

"" 1;

}

map "$ip_bad_soc:$null_ref" $bad_null_ref {

default 0;

"1:1" 1;

"1:0" 0;

}

# тут блокаем всех, кто лезет без рефа и по ip из вашего черного списка, и не блокаем всех кто попал в черный список по ip но у него реф вашего сайта, также можно нагромоздить условий, например: прямой заход, с определенным user agent

В секции server уже будет 2 условия:

server {



If ($block_soc) { return 444; }

If ($bad_null_ref) { return 444; }



}

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

Конечно существует риск, что под условия подпадут и нормальные пользователи, но это конкретно для меня не критично.

Думай о будущем, но не забывай, что этот день может стать последним!
Александр Дружный
На сайте с 17.11.2019
Offline
10
#13
Благодарю
Бахин
На сайте с 26.05.2017
Offline
76
#14

правда, я о некоторых вещах умолчал, сами понимаете причину...

regzaemy
На сайте с 07.02.2019
Offline
29
#15

Я пробовал вылавливать по 1x1 ссылке, которую жмет бот(отсекая ботов поисковиков)....но в результате...htaccess растет а боты как были так и есть

Бахин
На сайте с 26.05.2017
Offline
76
#16
regzaemy #:

Я пробовал вылавливать по 1x1 ссылке, которую жмет бот(отсекая ботов поисковиков)....но в результате...htaccess растет а боты как были так и есть

не знаю как там дела с apache (выше писал), через nginx у меня ни одного захода ботов с соцсетей не проскачило (редко бывает 1-2 шт в сутки). 

Вот как раз сегодня в метрике заход с социалок, а для сервера подставили реф яндекса — блокнул к чертям и пох, что там норм могут попасть...

Александр
На сайте с 17.07.2009
Offline
371
#17

" далее создаем список подсетей в файле, назовите, как вам удобней допустим назвали так ip_bad_soc.conf (лучше всего в дректории /etc/nginx/conf.d) — вносим в него найденные подсети: "

Круто, но не для всех. У меня за 1 неделю заходы из 40 подсетей. Так я через пару месяцев весь инет заблочу.

109.197
176.59
178.176
185.202
185.210
185.220
185.97
188.162
188.170
188.65
188.66
195.175
212.156
213.87
217.118
217.66
31.13
31.173
37.29
45.129
5.44
62.4
77.222
79.140
79.143
81.9
83.149
83.169
83.220
85.115
85.140
85.26
89.113
91.193
91.205
94.19
94.25
95.0
95.153
95.217

Сайты на WordPress тут просто летают! (https://vk.cc/atAGUU)
Бахин
На сайте с 26.05.2017
Offline
76
#18
aleksandrbol #:

Круто, но не для всех. У меня за 1 неделю заходы из 40 подсетей. Так я через пару месяцев весь инет заблочу.

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

P.S. я кстати в Вашем списке вижу тех кто ко мне лезет

Бахин
На сайте с 26.05.2017
Offline
76
#19

да, наверное немного конструкцию не так написал, вот так:

далее создаем список подсетей в файле, назовите, как вам удобней допустим назвали так ip_bad_soc.conf (лучше всего в дректории /etc/nginx/conf.d) — вносим в него найденные подсети:

222.333.y.х/24 1;

222.334.y.х/16 1;

тут в начале забыл приписать cat:

cat site.log | grep "youtube" | grep "//ok.ru" | grep "//t.co" | grep "zen.yandex.ru" 

UPD:  дам еще одну подсказку, если наседают на определенную страницу, создайте в директории 

/etc/nginx/conf.d/

файл your_name.conf и добавить в него относительные ссылки вида:

/category/post 1;

и еще один map в главном конфиге nginx:

map $uri $urls {
    default 0;
    include /etc/nginx/conf.d/your_name.conf;
}

и можно сделать условие:

map "$ip_bad_soc:$bad_ref_soc:$bad_useragent_soc:$urls" $block_soc {

default 0;

"1:1:1:1" 1;

}

то есть получиться если лезут по ip из списка, по определенному рефу, user agent на страницу которую указали в файле your_name.conf — блокать. Так вы не весь сайт блокните. Условий уйму можно составить, например, блокать всех, кто лезет через мобильных операторов с ПК...

Роман74
На сайте с 21.11.2014
Offline
83
#20
bahinnn #:

Черт с ним здесь опишу, только сам принцип (как у меня публиковать не буду). Поехали, чтобы это все работает потребуется монотонная работа над логами (в помощь можно использовать вебвизор, если он включен).

А можно блокировать все прямые заходы на сайт,  Разрешить заходы только из пс

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