我正在编写一个应该检测 VPN 流量的程序。就我所读到的主题而言,隧道协议的检测似乎与防火墙规则一样容易,使用它们的专用端口:
PPTP:端口 1723/TCP
OpenVPN:端口 1194
L2TP:端口 1701/UDP
我的问题是 SSTP,因为它使用的是广泛使用的端口 443。
所以我有两个问题:
我附上了一段 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)