DPI设置功能

本文不讨论完整的DPI设置以及所有相关的内容,并且本文的科学价值很小。 但是它描述了绕过DPI的最简单方法,许多公司都没有考虑到这一点。

图片

警告1:本文本质上是研究,不鼓励任何人做任何事情并使用。 这个想法基于个人经验,任何巧合都是随机的。

警告编号2:本文并未透露亚特兰蒂斯的秘密,寻找圣杯以及宇宙的其他奥秘,所有材料均属于公共领域,在哈布雷杂志上可能已被描述多次。 (我没有找到,我将感谢您的链接)

对于那些阅读警告的人,我们开始吧。

什么是DPI?


DPI或深层数据包检查-一种用于收集统计数据,检查和过滤网络数据包的技术,不仅可以分析数据包头,而且还可以分析OSI模型级别(从第二级或更高级别)开始的全部流量,从而使您能够检测和阻止病毒,过滤不符合指定条件的信息。

ValdikSS 在github上描述了两种DPI连接类型:
被动DPI

DPI通过无源分光器或使用来自用户的流量的镜像并行连接(而不是直接连接)到提供商网络。 在DPI性能不足的情况下,这种连接不会减慢提供商网络的速度,这就是大型提供商使用它的原因。 具有这种类型的连接的DPI从技术上只能检测到尝试请求禁止的内容,而不能停止它。 为了规避此限制并阻止对禁止站点的访问,DPI向用户发送特制的HTTP数据包,以请求被阻止的URL,并重定向到提供商存根页面,就好像请求的资源本身已经发送了这样的响应(发送者的IP地址和TCP序列是伪造的)。 由于DPI在物理上比请求的站点更靠近用户,因此,伪造的响应比来自站点的实际响应更快地到达用户的设备。

主动DPI

主动DPI-与其他任何网络设备一样,以常规方式连接到提供商网络的DPI。 提供者配置路由,以便DPI接收从用户到阻塞IP地址或域的流量,并且DPI已经决定允许或阻塞流量。 活动DPI可以同时检查传出和传入流量,但是,如果提供程序仅使用DPI阻止注册表中的站点,则通常将其配置为仅扫描传出流量。

不仅流量的阻塞效率,而且DPI负载都取决于连接类型,因此有可能不检查所有流量,而仅检查某些流量:
正常DPI

“常规” DPI是指仅在最常见的端口上过滤特定类型的流量的DPI。 例如,“正常” DPI仅在端口80上检测和阻止被禁止的HTTP通信,而在端口443上检测和阻止HTTPS通信。如果您将带有被阻止URL的请求发送到未被阻止IP或非标准端口,则这种DPI将不会跟踪被禁止内容。

完整的DPI

与“常规” DPI不同,这种类型的DPI可以对流量进行分类,而不考虑IP地址和端口。 因此,即使您在完全不同的端口和未阻止的IP地址上使用代理服务器,被阻止的站点也不会打开。

DPI用法


为了不降低数据传输速率,您需要使用“普通”被动DPI,这可以使您有效? 阻止任何? 资源,默认配置如下所示:

  • 仅在端口80上进行HTTP筛选
  • 仅端口443上的HTTPS
  • 仅在6881-6889端口上使用BitTorrent

但是问题开始了,如果资源使用其他端口以免丢失用户 ,那么您将不得不检查每个软件包,例如,您可以引用:

  • HTTP在端口80和8080上工作
  • 端口443和8443上的HTTPS
  • 其他任何频段上的BitTorrent

因此,您将不得不切换到活动DPI,或者使用其他DNS服务器进行阻止。

DNS封锁


阻止对资源的访问的一种方法是使用本地DNS服务器拦截DNS查询,并将“存根”的IP地址返回给用户,而不是返回所需的资源。 但这不能保证结果,因为可以防止地址欺骗:

选项1:编辑主机文件(适用于台式机)

hosts文件是任何操作系统的组成部分,可让您始终使用它。 要访问资源,用户必须:

  1. 查找所需资源的IP地址
  2. 打开位于以下位置的用于编辑的主机文件(需要管理员权限):
    • Linux:/ etc / hosts
    • Windows:%WinDir%\ System32 \驱动程序\等\主机
  3. 添加以下格式的行:<ip地址> <资源名称>
  4. 保存更改

此方法的优点是它的复杂性和拥有管理员权限的要求。

选项2:DoH(HTTPS上的DNS)或DoT(TLS上的DNS)

这些方法使您可以保护使用加密的DNS查询免受欺骗,但是并非所有应用程序都支持该实现。 考虑用户为Mozilla Firefox 66版配置DoH的简便性:

  1. 转至在Firefox中配置
  2. 确认用户承担所有风险
  3. network.trr.mode参数的值更改为:
    • 0-禁用TRR
    • 1-自动选择
    • 2-默认启用DoH
  4. 通过选择DNS服务器来更改network.trr.uri参数
  5. network.trr.boostrapAddress参数更改为:
    • 如果选择Cloudflare DNS:1.1.1.1
    • 如果选择了Google DNS:8.8.8.8
  6. network.security.esni.enabled参数的值更改为true
  7. 使用Cloudflare验证设置

尽管此方法比较复杂,但是它不需要用户的管理员权限,并且本文还没有介绍许多其他方法来保护DNS查询。

选项3(对于移动设备):

使用Cloudflare的AndroidIOS应用程序。

测试中


为了检查缺乏资源的访问权,暂时购买了在俄罗斯联邦领土上受阻的域:

  • HTTP检查+ 80端口
  • HTTP检查+ 8080端口
  • 检查HTTPS + 443端口
  • 检查HTTPS + 8443端口

结论


我希望本文会有所帮助,不仅会鼓励管理员更详细地了解该主题,而且还将使您清楚地知道资源始终在用户方面,寻求新解决方案应该是他们不可或缺的一部分。

有用的链接



文章外的补充
无法在Tele2网络上通过Cloudflare测试,并且正确配置的DPI将阻止对测试站点的访问。
PS到目前为止,这是第一个正确阻止资源的提供程序。

Source: https://habr.com/ru/post/zh-CN453260/


All Articles