我正在寻找一种在 Windows 10 中获取 iptables 功能的方法。我启用了 IP 路由,我需要将 tcp 数据转发到另一台主机(端口 4000),然后在伪装 IP 的同时转发其响应。在 Linux 中,我可以使用以下命令执行此操作:
iptables -A INPUT -p tcp --dport 4000 -m string --hex-string '|FF01|' --algo bm -j DROP
iptables -A INPUT -p tcp --dport 4000 -m string --hex-string '|1400|' --algo bm -j REJECT
多谢你们!
答案1
Windows 防火墙所基于的 Windows 过滤平台不(直接)支持检查数据包内容。因此,实现此特定条件(-m string --hex-string '|FF01|'
)是不可能。
为了实现此功能,需要一个所谓的“Windows 过滤平台调出驱动程序”。顾名思义,这些是内核模式驱动程序。它们可以对数据包数据进行深度检查并设置阻止数据包等操作。
在 64 位 Windows 上,内核驱动程序需要进行代码签名。
您也可以使用第三方防火墙解决方案来实现相同的效果。
最简单的解决方案就是不使用 Windows。
答案2
Windows 防火墙具有类似的规则,可以阻止某些 IP 进入端口。
- 打开高级安全 Windows Defender 防火墙。在“开始”菜单中搜索“Windows 防火墙”时,应该会出现该防火墙
- 从左侧窗格中选择入站规则
- 在右侧窗格中,选择“新建规则”
- 规则类型:选择自定义
- 程序:选择所有程序
- 协议和端口:协议类型为 TCP,本地端口为特定端口 4000。远程端口未设置。
- 范围:输入要阻止的 IP 和范围。请注意,LAN IP 位于上方框中。WAN IP 位于下方框中
- 措施:阻止连接
- 个人资料:选择所有选项
- 名称:根据您的喜好设置。这对规则没有影响。