Асаблівасці наладкі DPI

У дадзеным артыкуле не разглядаецца поўная настройка DPI і ўсё разам звязанае, а навуковая каштоўнасць тэксту мінімальная. Але ў ёй апісваецца найпросты спосаб абыходу DPI, які не ўлічылі многія кампаніі.

Асаблівасці наладкі DPI

Папярэджанне №1: дадзены артыкул нясе даследчых характар, не падахвочвае нікога штосьці прадпрымаць і выкарыстоўваць. Ідэя заснавана на асабістым досведзе, а любыя супадзенні выпадковыя.

Папярэджанне №2: у артыкуле не раскрываюцца таямніцы Атлантыды, пошуку Святога Грааля і іншыя загадкі сусвету, увесь матэрыял знаходзіцца ў вольным доступе і магчыма не раз быў апісаны на Хабры. (я не знайшоў, за спасылку буду ўдзячны)

Для тых, хто прачытаў папярэджанні пачнем.

Што такое DPI?

DPI або Deep Packet Inspection - тэхналогія назапашвання статыстычных дадзеных, праверкі і фільтрацыі сеткавых пакетаў аналізуючы не толькі загалоўкі пакетаў, але і поўнае змесціва трафіку на ўзроўнях мадэлі OSI з другога і вышэй, што дазваляе выяўляць і блакаваць вірусы, фільтраваць інфармацыю, якая не задавальняе зададзеным крытэры .

Існуе два тыпу падлучэння DPI, якія апісаны ValdikSS на github:

Пасіўны DPI

DPI, падлучаны ў правайдэрскую сетку раўналежна (не ў разрэз) альбо праз пасіўны аптычны сплітар, альбо з выкарыстаннем люстравання выходнага ад карыстачоў трафіку. Такое падлучэнне не запавольвае хуткасць працы сеткі правайдэра ў выпадку недастатковай прадукцыйнасці DPI, з-за чаго прымяняецца ў буйных правайдэраў. DPI з такім тыпам падлучэння тэхнічна можа толькі выяўляць спробу запыту забароненага кантэнту, але не спыняць яе. Каб абыйсці гэтае абмежаванне і заблакаваць доступ на забаронены сайт, DPI адпраўляе карыстачу, які запытвае заблакаваны URL, адмыслова сфармаваны HTTP-пакет з перанакіраваннем на старонку-заглушку правайдэра, нібы такі адказ даслаў сам запытаны рэсурс (падрабляецца IP-адрас адпраўніка і TCP sequence). З-за таго, што DPI фізічна размешчаны бліжэй да карыстача, чым запытаны сайт, падроблены адказ даходзіць да прылады карыстальніка хутчэй, чым сапраўдны адказ ад сайта.

Актыўны DPI

Актыўны DPI - DPI, падлучаны ў сетку правайдэра звыклай выявай, як і любая іншая сеткавая прылада. Правайдэр наладжвае маршрутызацыю так, каб DPI атрымліваў трафік ад карыстачоў да заблакаваных IP-адрасоў або даменам, а DPI ужо прымае рашэнне аб пропуску ці блакаванні трафіку. Актыўны DPI можа правяраць як выходны, так і ўваходны трафік, аднак, калі правайдэр ужывае DPI толькі для блакавання сайтаў з рэестра, часцей за ўсё яго наладжваюць на праверку толькі выходнага трафіку.

Ад тыпу падлучэння залежыць не толькі эфектыўнасць блакавання трафіку, але і нагрузка на DPI, таму існуе магчымасць не правяраць увесь трафік, а толькі вызначаны:

"Звычайны" DPI

Пад звычайным DPI разумеецца такі DPI, які фільтруе вызначаны тып трафіку толькі на самых распаўсюджаных партах для гэтага тыпу. Напрыклад, "звычайны" DPI выяўляе і блакуе забаронены HTTP-трафік толькі на порце 80, HTTPS-трафік на порце 443. Дадзены тып DPI не будзе адсочваць забаронены кантэнт, калі вы адправіце запыт з заблакаваным URL на незаблакаваны IP або нестандартны порт.

"Поўны" DPI

У адрозненне ад "звычайнага" DPI, дадзены тып DPI класіфікуе трафік па-за залежнасцю ад IP-адрасы і порта. Такім чынам, заблакаваныя сайты не будуць адкрывацца, нават калі вы выкарыстоўваеце проксі-сервер на зусім іншым порце і незаблакаваным IP-адрасе.

Выкарыстанне DPI

Каб не змяншаць хуткасць перадачы дадзеных патрабуецца выкарыстоўваць "Звычайны" пасіўны DPI, які дазваляе эфектыўна? блакаваць любыя? рэсурсы, па змаўчанні канфігурацыя выглядае так:

  • HTTP фільтраваць толькі на 80 порце
  • HTTPS толькі на 443 порце
  • BitTorrent толькі на 6881-6889 партах

Але праблемы пачынаюцца, калі рэсурс будзе выкарыстоўваць іншы порт, каб не губляць карыстальнікаў, тады давядзецца правяраць кожны пакет, для прыкладу можна прывесці:

  • HTTP працуе на 80 і 8080 порце
  • HTTPS на 443 і 8443 порце
  • BitTorrent на любым іншым дыяпазоне

З-за гэтага прыйдзецца альбо перайсці на "Актыўны" DPI, альбо выкарыстоўваць блакіраванне з дапамогай дадатковага DNS-сервера.

Блакаванне з дапамогай DNS

Адным са спосабаў заблакаваць доступ да рэсурсу з'яўляецца перахоп DNS-запыту з дапамогай лакальнага DNS-сервера і вяртанне карыстачу IP-адрасы "заглушкі", а не патрабаванага рэсурсу. Але гэта не дае гарантаваны вынік, бо існуе магчымасць прадухіліць падмену адраса:

Варыянт 1: Рэдагаванне файла hosts (для дэсктопа)

Файл hosts з'яўляецца неад'емнай часткай любой аперацыйнай сістэмы, што дазваляе заўседы выкарыстоўваць яго. Для доступу да рэсурсу карыстальніку трэба:

  1. Даведацца IP-адрас патрэбнага рэсурсу
  2. Адкрыць на рэдагаванне файл hosts (патрабуюцца правы адміністратара), размешчаны ў:
    • Linux: /etc/hosts
    • Windows: %WinDir%System32driversetchosts
  3. Дадаць радок у фармаце: <імя рэсурсу>
  4. захаваць змены

Перавага дадзенага метаду - яго складанасць і патрабаванні наяўнасць правоў адміністратара.

Варыянт 2: DoH (DNS over HTTPS) ці DoT (DNS over TLS)

Дадзеныя метады дазваляюць абараніць ад падмены DNS-запыт з дапамогай шыфравання, але рэалізацыя падтрымліваецца не ўсімі праграмамі. Разгледзім прастату налады DoH для Mozilla Firefox версіі 66 з боку карыстача:

  1. Перайсці па адрасе about: config у Firefox
  2. Пацвердзіць, што карыстач прымае на сябе ўсю рызыку
  3. Змяніць значэнне параметру network.trr.mode на:
    • 0 - адключыць TRR
    • 1 - аўтаматычны выбар
    • 2 - уключыць DoH па змаўчанні
  4. Змяніць параметр network.trr.uri выбраўшы DNS-сервер
    • DNS Cloudflare: mozilla.cloudflare-dns.com/dns-query
    • GoogleDNS: dns.google.com/experimental
  5. Змяніць параметр network.trr.boostrapAddress на:
    • Калі абраны Cloudflare DNS: 1.1.1.1
    • Калі абраны Google DNS: 8.8.8.8
  6. Змяніць значэнне параметру network.security.esni.enabled на праўда
  7. Праверыць правільнасць наладкі з дапамогай сэрвісу Cloudflare

Хоць дадзены спосаб больш складаны, ён не патрабуе наяўнасці мае рацыю адміністратара ў карыстача, а таксама існуе мноства іншых спосабаў абароны DNS-запыту, не апісаных у дадзеным артыкуле.

Варыянт 3 (для мабільны прылад):

Выкарыстанне прыкладання ад Cloudflare для Android и IOS.

Тэставанне

Для праверкі адсутнасці доступу да рэсурсаў быў часова выкуплены дамен, заблакаваны на тэрыторыі РФ:

Заключэнне

Спадзяюся, дадзены артыкул будзе карысны і падштурхне не толькі адміністратараў больш падрабязна разбірацца ў тэме, але і дасць разуменне, што рэсурсы заўсёды будуць на баку карыстальніка, а пошук новых рашэнняў павінен быць для іх неад'емнай часткай.

Карысныя спасылкі

Дадатак па-за артыкуламТэст на Cloudflare немагчыма прайсці ў сетцы аператара Tele2, а правільна наладжаны DPI блакуе доступ да тэставай пляцоўкі.
PS Пакуль гэта першы правайдэр, які правільна блакуе рэсурсы.

Крыніца: habr.com

Дадаць каментар