小编Mal*_*hen的帖子

如何检测SSTP流量?

我正在编写一个应该检测 VPN 流量的程序。就我所读到的主题而言,隧道协议的检测似乎与防火墙规则一样容易,使用它们的专用端口:

PPTP:端口 1723/TCP

OpenVPN:端口 1194

L2TP:端口 1701/UDP

我的问题是 SSTP,因为它使用的是广泛使用的端口 443。

所以我有两个问题:

  1. 我是不是太天真了,以为我只能通过它们的端口来检测那些 VPN 隧道协议?
  2. 有没有人知道如何检测 SSTP 并将其流量与使用 TLS/SSL(甚至使用 DPI)的任何其他类型/应用程序区分开来?

我附上了一段 Python 代码,用于检测上述端口中的通信

import dpkt
import socket

# -------------------------- Globals

# VPN PORTS
import common
import dal

protocols_strs = {"pp2e_gre": "1723/TCP PP2P_GRE_PORT",
                  "openvpn": "1194 OPENVPN_PORT",
                  "ike": "500/UDP IKE_PORT",
                  "l2tp_ipsec": "1701/UDP L2TP_IPSEC_PORT"
                  }

port_protocols = {1723: 'pp2e_gre',
                  1194: 'openvpn',
                  500: 'ike',
                  1701: 'l2tp_ipsec'
                  }

# Dict of sets holding the protocols sessions
protocol_sessions = {"pp2e_gre": [],
                     "openvpn": [],
                     "ike": [], …
Run Code Online (Sandbox Code Playgroud)

python vpn communication network-protocols tunneling

3
推荐指数
1
解决办法
641
查看次数