A firewall concealment tool implementing Single Packet Authorization (SPA), which grants access to services hidden behind default-drop firewall policies using a single encrypted, non-replayable, and HMAC-authenticated packet.
- 2.6.11
- Published at
- Feb 7, 2024
- 1,465
- Stars
- 722
- Download
- Synced at
- Oct 3, 2026
Latest release
2.6.11Feb 7, 2024, 02:05 AMDownloads slow? Switch the source anytime above
README
Project Overview
fwknop implements an authorization scheme known as Single Packet Authorization (SPA) for strong service concealment. SPA requires only a single packet which is encrypted, non-replayable, and authenticated via an HMAC in order to communicate desired access to a service that is hidden behind a firewall in a default-drop filtering stance.
Key Features
- Single Packet Authorization (SPA): Next-generation Port Knocking
- Replay attack protection: SPA prevents replay attacks via encryption and HMAC authentication
- Service concealment: Services hidden behind default-drop firewall policies, invisible to Nmap scans
- Multi-firewall support: Supports iptables, firewalld, PF, and ipfw across Linux, OpenBSD, FreeBSD, and macOS
- Custom script support: Extensible with ipset, nftables, and other custom scripts
- Encryption options: Supports Rijndael block cipher and GnuPG asymmetric encryption
Target Audience
- Security administrators who need to protect critical services like SSH from scanning
- System administrators concerned about zero-day vulnerabilities and unpatched code
- Network security researchers
Quick Start
- Install fwknop (via package manager or source compilation)
- Configure the
/etc/fwknop/access.conffile - Generate encryption and HMAC keys using the
--key-genoption - Send SPA packets using the
fwknopclient - Receive and process SPA requests using the
fwknopddaemon
Core Advantages
- More secure than traditional Port Knocking with SPA
- Supports multiple firewalls and operating systems
- Encryption (Rijndael/GnuPG) + HMAC dual authentication
- Open-source and free
System Requirements
- OS: Linux, OpenBSD, FreeBSD, macOS
- Additional Dependencies: libpcap (for passive SPA data acquisition)
Release history
Sort