Редирект для России

ExPlayer

Пользователь
#1
Всем доброго времени суток! В связи с скором вступлении (01.11.2017) в силу закона о блокировках VPN/proxy/анонимайзеров для заблокированных сайтов на территории РФ, созрели вопросы:

1. как можно сделать редирект на зеркало сайта для пользователей из России (так, как это реализовано на руторе — при переходе на rutor.info открывается hd-rutor.org)?
2. как можно настроить 1 базу на несколько доменов/сайтов, что бы данные обновлялись одновременно?
 

JDVU

Разработчик
#2
1. если сайт заблокирован роскомнадзором то никакого редиректа вы не сделаете, только на уровне провайдера. на rutor.info нет никаких переходов, по крайней мере не встречал
редиректы для стран можно сделать используя геотаргетинг nginx (

Please Login or Register to view hidden text.

)
2. на обоих сайтах одни и те же данные для бд
 

JDVU

Разработчик
#4
зачем перечислять? есть базы максмайнд и ему подобные. подсовываются в nginx
определяем Россию и заворачиваем
Код:
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
        default yes;
        RU no;
}

if ($allowed_country = no) {
            return 301 http://blablabla.bla;        
}
 

Protektor

Пользователь
#5
Я один момент не пойму с rutor.info , если он заблокирован в рф , то каким образом у него отрабатывает редирект? Провайдер же должен успеть сделать редирект на страницу блокировки. У меня beeline. Вопрос у всех проходит руторовский редирект, или у кого то провайдер блочит?
 

Protektor

Пользователь
#6
сей час смотрел в реестре роскомсвободы там нет ни где что рутор.инфо заблокирован , есть отдельные страницы и то блокировка давно снята.

Please Login or Register to view hidden text.


Вот пример пинга первый ip рутора (тот что .инфо)
Второй рутрекера

Как видно без прокси с территории России на заблокированном домене потери пакетов 100% (что в принципе понятно)
А вот первый ip без проблем пингуется, что собственно говорит еще раз о том, что он не под блоком, админы рутора просто по своему желанию, а не из-за блокировки, редиректят пользователей
Следовательно если будет настроен редирект (описанный постами выше) то от блокировки провайдера это не спасет, редирект происходить не будет , а будет что то типо

Если я не прав, поправьте, ну как по мне дурить все эти блокировки нужно явно не этим способом.
 

JDVU

Разработчик
#7
да все верно, по апи у роскомнадзора забирается список и провайдер на своем уровне заворачивает на заглушку
такие блокировки обходятся только на уровне впн и прокси.
если владелец трекера хочет заранее перестраховаться то уже рекомендуйте юзать браузер TOR или плагины под сеть tor и сидеть на домене .onion
 

ExPlayer

Пользователь
#9
Как-то это всё не обнадеживает...

зачем перечислять? есть базы максмайнд и ему подобные. подсовываются в nginx
определяем Россию и заворачиваем
Код:
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code $allowed_country {
        default yes;
        RU no;
}

if ($allowed_country = no) {
            return 301 http://blablabla.bla;       
}
Но всё равно — спасибо за пример :)
 

Protektor

Пользователь
#10
Всем доброго времени суток! В связи с скором вступлении (01.11.2017) в силу закона о блокировках VPN/proxy/анонимайзеров для заблокированных сайтов на территории РФ, созрели вопросы:

1. как можно сделать редирект на зеркало сайта для пользователей из России (так, как это реализовано на руторе — при переходе на rutor.info открывается hd-rutor.org)?
2. как можно настроить 1 базу на несколько доменов/сайтов, что бы данные обновлялись одновременно?
Начиная с версии 1.9.11 nginx как написано в

Please Login or Register to view hidden text.

теперь есть поддержка динамических модулей а значит подобный редирект становится сделать еще проще , теперь не нужно заново пересобирать nginx достаточно выполнить в консоли
Код:
apt-get install nginx-module-geoip
после установки они будут лежать в /usr/lib/nginx/modules
Код:
# в основной файл конфига подключить ближе к верху после worker_processes к примеру
#GeoIP
load_module modules/ngx_http_geoip_module.so;
load_module modules/ngx_stream_geoip_module.so;

#Для удобства далее создать директорию
mkdir /etc/nginx/geoip
#перейти в нее  
cd /etc/nginx/geoip

#и выполнить
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
wget http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
gunzip GeoIP.dat.gz
gunzip GeoLiteCity.dat.gz
gunzip GeoIPASNum.dat.gz

# в начало секции http основного конфига  
    geoip_country  /etc/nginx/geoip/GeoIP.dat;
    geoip_city     /etc/nginx/geoip/GeoLiteCity.dat;
    geoip_org      /etc/nginx/geoip/GeoIPASNum.dat;
    
    geo $accessvar {
        default no;
        178.62.113.166 yes; # разрешенные ip забаненых стран если не нужно удалить секцию
    }
    
    map $geoip_country_code $allowed_country {
      default yes;
      CN no;
      RU no; # бан по странам
      GB no;
    }

в конфиг сайта в секцию server
if ($accessvar = yes) {
        set $allowed_country yes; # проверяем есть ли разрешенный ip в забаненой стране, если не нужно удаляем весь if
    }
    
    if ($allowed_country != yes) {
      return 403; # тут можно поставить редирект на другой домен
    }
Есть более продвинутые базы,

Please Login or Register to view hidden text.

, что выбрать , каждый решит сам.