У сучасным інтэрнэце геаграфічнае становішча часта вызначае ваш доступ да лічбавых паслуг. Тое, што яшчэ ўчора было даступна проста па спасылцы: папулярныя нейрасеткі (напрыклад, Gemini ці ChatGPT), некаторыя спартыўныя сэрвісы, праграмнае забеспячэнне, ці нават пэўныя антывірусныя прадукты — сёння могуць сустрэць вас халодным паведамленнем: "Недаступна ў вашым рэгіёне".
У гэтым артыкуле разгледзім просты спосаб для забеспячэння доступу да такіх сэрвісаў у вашай хатняй лабараторыі і за яе межамі для мабільных прылад.
Інструменты
Для здзяйснення плану нам патрэбны:
- VPS сервер у краіне, дзе няма абмежаванняў для большасці недаступных сэрвісаў; Мы ў прыкладзе выкарыстоўваем сэрвер на Ubuntu 22.04;
- Уласны DNS-сэрвер для хатняй інфраструктуры (напрыклад AdGuardHome); Але можна выкарыстоўваць любы метад атрымання IP па даменам, у тым ліку проста дадаць патрэбныя адрасы сэрвісаў якія не працуюць у hosts.
Увага!
Само сабою ваш VPS павінен прайсці стартавыя налады, на якіх мы не будзем спыняцца і адыходзіць ад тэмы. Нагадваем, што невыкананне патрабаванняў бяспекі можа прывесці да блакавання сэрвера ці да нанясення шкоды іншым.
Наладжваем nginx
Усталёўваем nginx з модулям ngx_stream_core_module, які дапаможа нам праксіраваць трафік на аснове SNI.
Выконваем каманды:
apt update 
apt install nginx 
Адкрываем канфігурацыйны файл:
nano /etc/nginx/nginx.conf
І дадаем пасля блока http наступную кафігурацыю:
stream { 
    log_format proxy '$remote_addr [$time_local] ' 
                     '$protocol $status $bytes_sent $bytes_received ' 
                     '$session_time "$ssl_preread_server_name"'; 
 
    access_log /var/log/nginx/stream-access.log proxy; 
    error_log /var/log/nginx/stream-error.log; 
 
    server { 
        resolver 1.1.1.1 ipv6=off; 
        listen 443; 
        ssl_preread on; 
        proxy_pass $ssl_preread_server_name:443; 
        proxy_connect_timeout 10s; 
        proxy_timeout 30s; 
    } 
}nginx.conf
Замест 1.1.1.1 у дзясятым радку вы можаце пазначыць IP любога публічнага DNS-рэзолвера, які вам падабаецца. Мы будзем выкарыстоўваць для прыклада IP Cloudflare.
Захоўваем файл і правяраем што з ім няма праблем:
nginx -t
nginx -s reload
Калі ўсё запусцілася, то наш VPS ужо можна выкарыстоўваць праз даданне канфігурацыі ў файл hosts. На дадзены момант любы трафік які будзе прыходзіць на наш сэрвер будзе перанакіроўвацца на той сэрвіс, які нам патрэбны.
Наладжваем AdGuardHome
У вашым сэрверы трэба дадаць наладу якая будзе прымусова накіроўваць увесь трафік на заблакаваныя дамены праз наш VPS сэрвер.
У AdGuardHome трэба выбраць Фільтры>Карыстальніцкія правілы фільтрацыі і дадаць запісы з патрэбнай колькасцю даменаў (у прыкладзе пазначаны дамены для працы Gemini, ChatGPT і Strava):
||gemini.google.com^$dnsrewrite=NOERROR;A;192.168.1.1
||googleapis.com^$dnsrewrite=NOERROR;A;192.168.1.1
||apis.google.com^$dnsrewrite=NOERROR;A;192.168.1.1
||labs.google^$dnsrewrite=NOERROR;A;192.168.1.1
||openai.com^$dnsrewrite=NOERROR;A;192.168.1.1
||api.openai.com^$dnsrewrite=NOERROR;A;192.168.1.1
||auth0.openai.com^$dnsrewrite=NOERROR;A;192.168.1.1
||chat.openai.com^$dnsrewrite=NOERROR;A;192.168.1.1
||chatgpt.com^$dnsrewrite=NOERROR;A;192.168.1.1
||strava.com^$dnsrewrite=NOERROR;A;192.168.1.1Дзе IP 192.168.1.1 трэба замяніць на IP вашага VPS сэрвера. Ну а з наладжаным шыфраваннем атрымаць доступ па DoT можна з мабільных прылад.
Вынікі
Такім чынам у нас атрымалася наладзіць доступ да сэрвісаў якія абмяжоўваюць доступ без неабходнасці ўсталявання дадатковых праграм. Такі метад зручна выкарыстоўваць на ўсіх хатніх прыладах адначасова, калі яны працуюць з DNS праз ваш роўтар, у якім пазначаны AdGuardHome як пераважны DNS-рэзолвер.
