单包授权
PortGuard
PortGuard 提供强大的单包授权技术来保护您的网络免受未经授权的访问,包括端口扫描威胁。
立即下载,多平台 GUI
多平台 GUI
下载 Windows 版本
fwknopc_2_6_11_x64-setup.exe
下载 Macos 版本
fwknopc_2_6_11_x64.pkg
下载 Android 版
fwknopc_2_6_11_x64.apk
适用于 CentOS7 的 Fwknop 服务器
文件名 | 上次修改 | MD5 |
---|---|---|
fwknop-server-2.6.11-1.el7.x86_64.rpm | 2025-07-29 |
1a375f89c2aa16935ddce164ad16adad
|
libfko-3.0.0-1.x86_64.rpm | 2025-07-29 |
7f720f1f444f1634bab7cadbbfec40b2
|
1.我为什么要开发PortGuard?
我第一次了解到单包授权 (SPA) 的概念是在一次与同事的闲聊中。在此之前,我对端口敲击或 SPA 一无所知。恰巧公司需要一个端口敲击解决方案,在查阅和研究相关资料后,我发现了 fwknop。fwknop 的概念令人印象深刻——对于那些只需要少数人访问的服务来说,fwknop 是一个绝佳的解决方案。我们曾考虑开发自己的工具,但 fwknop 更加成熟。然而,fwknop 也有其缺点:它很复杂,安装和使用的学习曲线很高,而且缺乏专用的客户端应用程序。这促成了 PortGuard 的诞生。PortGuard 的目标是支持主流的端口敲击协议,例如 fwknop 以及未来的 tnok,同时提供跨平台的客户端。作为 fwknop 和 tnok 的扩展,PortGuard 旨在使 SPA 技术更加用户友好且易于访问。
2. PortGuard 客户端支持的平台
目前,PortGuard 支持以下平台:
- iOS
- Android
- Windows
- macOS
3. PortGuard 使用案例
PortGuard的核心功能是通过隐藏服务端口(默认关闭)来增强网络安全性,适用于以下场景:
3.1 保护远程访问服务(例如 SSH)
设想: 管理员需要从不同位置(例如,家里、咖啡店、移动网络)安全地访问 SSH 服务,而不会将 SSH 端口暴露给公共网络。
执行: 使用fwknop或者tnok,客户端发送SPA数据包或者TOTP敲击数据包,服务端进行验证,验证通过后临时开放SSH端口(默认22)。
优点: 防止Nmap等端口扫描工具发现服务,降低零日漏洞被利用的风险。
例子: 远程团队成员使用fwknop客户端在Windows或Android设备上发送SPA数据包,安全地访问公司内部服务器。
3.2 云环境中的服务保护
设想: AWS、Azure 等云平台中的内部服务(例如数据库、Web 服务器)需要通过公网访问,但需要避免端口直接暴露。
执行: PortGuard 与 NAT 集成,允许外部客户端通过 SPA 访问 RFC 1918 地址空间中的内部服务。
优点: 支持复杂的网络拓扑,适用于混合云和多租户环境。
例子: 在AWS EC2实例上运行fwknopd,动态打开MySQL端口(3306)供授权用户访问。
3.3 防御端口扫描和暴力破解
设想: 服务器面临端口扫描(例如,Nmap)或暴力攻击,需要隐藏服务端口以减少攻击面。
执行: PortGuard 维持默认的丢弃防火墙策略,仅在接收到有效的 SPA 数据包后才打开端口。
优点: 即使存在未修补的漏洞,攻击者也无法发现服务端口。
例子: 防止 SSH 暴力破解,fwknop 仅在验证 HMAC 后打开端口。
3.4 支持多种业务保护
设想: 企业需要保护多种服务(例如 SSH、RDP、VPN、数据库),但不希望所有端口始终处于开放状态。
执行: fwknop支持在access.conf中定义多个服务和端口,客户端可以指定目标协议和端口。
优点: 灵活的规则配置,支持自定义超时和端口开放策略。
例子: 配置 fwknop 以保护 SSH(tcp/22)和 OpenVPN(udp/1194)。
3.5 嵌入式或物联网设备安全
设想: 物联网设备或嵌入式系统需要远程管理,但设备资源有限,容易受到攻击。
执行: 在资源受限的设备上运行轻量级 fwknopd 或 tnokd,通过 SPA 或 TOTP 控制访问。
优点: 资源消耗低,适合小型设备。
例子: 保护在 Raspberry Pi 上运行的 Web 服务。
3.6 第三方设备集成
设想: 需要与不支持原生 fwknop 的设备(例如思科路由器)集成,控制防火墙规则。
执行: fwknop的命令打开/关闭循环(command open/close cycle)功能允许执行自定义脚本来动态修改第三方设备的ACL。
优点: 可扩展,支持非标准防火墙设备。
例子: 在Linux服务器上运行fwknopd,通过SSH更新Cisco路由器的ACL。
3.7 技术细节
- fwknop支持定义超时时间(CMD_CYCLE_TIMER),端口打开后自动关闭,减少暴露时间。
- 可以与VPN(例如WireGuard,OpenVPN)结合使用,构建安全的专用网络。
- 支持X-Forwarded-For头解析,适合HTTP环境下的SPA。
4.PortGuard 的安全性如何?
PortGuard 的安全性主要依赖于 fwknop 的单包授权(SPA)机制,结合加密、身份验证和防火墙集成,提供多层防护。以下是安全性的详细分析:
4.1 加密和认证
加密: fwknop支持Rijndael(AES)对称加密或者GnuPG非对称加密,无法直接解析SPA数据包内容。
验证: 使用HMAC-SHA256(默认)或更高版本进行数据包认证,确保数据完整性和来源信任。
安全: 防止中间人(MITM)和重放攻击,加密后应用 HMAC,抵抗 CBC 模式填充 oracle 攻击(例如,Vaudenay 攻击)。
限制: 对称加密需要客户端和服务器共享密钥,密钥管理不当可能导致泄露;GnuPG模式需要维护密钥环,
4.2 防止端口扫描
机制: PortGuard采用默认的丢弃防火墙策略,未授权时服务端口是不可见的,因此Nmap等工具无法检测到。
安全: 大大减少了攻击面,即使存在零日漏洞,攻击者也无法定位服务端口。
限制: 如果敲击数据包被嗅探到(传统的端口敲击更容易受到这种影响),攻击者可能会尝试重放(SPA 通过 HMAC 解决了这个问题)。
4.3 抵制暴力破解
机制: SPA数据包需要正确加密和HMAC认证,暴力破解几乎不可能(HMAC失败的数据包会被直接丢弃)。
安全: 相较于传统的端口敲击,SPA的单包设计和加密机制显著提高了抵抗暴力破解的能力。
限制: 配置错误(例如,弱密钥或禁用 HMAC)可能会降低安全性。
✨ 特征




人们❤️Fwknop

John

Michael

James

David

Olivia

William