PacketFence NAC: Features, Installation Constraints, and Operating Scope
PacketFence is a fully supported, trusted, Free and Open Source network access control (NAC) solution. Boasting an impressive feature set including a captive-portal for registration and remediation, centralized wired and wireless management, powerful BYOD management options, 802.1X support, layer-2 isolation of problematic devices; PacketFence can be used to effectively secure networks small to very large heterogeneous networks.
At a glance
- What is it?
- PacketFence is a GPL-2.0 network access control system for organizations that need captive portal registration, remediation, 802.1X, and policy-based wired and wireless control. Its breadth makes it relevant to heterogeneous networks, but the README leaves deployment details to external administration documentation.
- Who is it for?
- PacketFence fits network teams that need centralized admission control across wired and wireless infrastructure and are prepared to configure network devices and external services. It is a poor fit for a developer seeking a self-contained library or an administrator who cannot supply the documented deployment environment.
- Can I use it commercially?
- Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Perl, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Star history
- inverse-inc/packetfence1,702 ★ · -2
| Repository | 2026-10-16 | 2026-10-23 |
|---|---|---|
| inverse-inc/packetfence | 1.7k | 1.7k |
-2 Stars in the last 7 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
PacketFence's Network Admission Control Scope
PacketFence addresses the problem of deciding which devices may join a network and what access they should receive. Its intended users are network administrators and security teams operating heterogeneous environments rather than a single switch model or access method. The README directly frames the question as knowing who is on the network and granting different access according to who is connecting.
Its documented scope extends beyond a simple registration form. PacketFence includes a captive portal for registration and remediation, centralized management for wired and wireless networks, BYOD management options, 802.1X support, and layer-2 isolation for problematic devices. It can also integrate with intrusion detection systems, vulnerability scanners, and other security products. This combination positions it as a policy enforcement point for organizations that need several admission mechanisms to converge around common access decisions.
The size range matters. The documentation describes PacketFence as suitable for small to very large heterogeneous networks, but it does not explain the hardware sizing, expected device counts, throughput limits, or database requirements behind that claim. As a result, the statement is a scope indicator rather than a sizing guide. An evaluator would still need the Administration Guide and its supported platform details before treating any particular environment as viable.
PacketFence is not an endpoint security agent. Its listed functions act at the network access layer, where clients encounter network infrastructure and PacketFence can apply identity, registration, remediation, or isolation policies. That distinction also explains when the product is the wrong choice. A team looking only for antivirus installation on endpoints would not find that role described in the README.
PacketFence Admission Paths and Network Boundaries
Based on the repository layout and documented capabilities, PacketFence is a multi-service Perl application with operational components under `bin/`, `sbin/`, `conf/`, `db/`, `raddb/`, and `var/`. The repository also contains Go code under `go/`, native MariaDB user-defined function sources under `src/mariadb_udf/`, documentation under `docs/`, and network configuration material under `README.network-devices` and the configuration guide referenced by the Makefile.
That structure indicates more than a captive portal application. Network-facing services can participate in device classification and policy enforcement, while `raddb/` and `conf/` point toward authentication and configuration concerns. Database files and MariaDB user-defined functions indicate a persistent data and policy-processing component. The README does not provide an architecture diagram or trace a complete packet sequence, so it would be inaccurate to claim a specific request flow from authentication through enforcement.
The documented control paths are nevertheless clear. The captive portal handles registration and remediation. 802.1X provides a standards-based admission path. Layer-2 isolation can restrict a device classified as problematic. Centralized wired and wireless management places device policy in the same product scope. Integrations with IDS tools and vulnerability scanners can bring external findings into the enforcement environment, although the README does not enumerate supported products or the exact exchange format.
This breadth creates an operational tradeoff. One project can address several access-control needs, but deployment also requires coordination with switches, access points, and wireless controllers. The repository explicitly asks network vendors and users to provide equipment so more can be supported. That request implies compatibility is not universal across every network device, even though the repository does not publish a support matrix here.
Installation Guidance and a First Repository Use
The README does not provide a self-contained installation procedure. It directs users to the PacketFence Administration Guide at `https://packetfence.org/support/index.html#/documentation`. The repository contains packaging and service-related entries, including `debian/`, `rpm/`, `containers/`, `packetfence.init`, and systemd unit files, but those paths are not accompanied by verified setup commands. It would therefore be misleading to supply an invented package, container flag, service command, or dependency list.
A first confirmed repository use is to build the project's documentation. The top-level Makefile defines a `pdf` target that selects PacketFence AsciiDoc guides and invokes `asciidoctor-pdf`. From the repository root, the documented target is:
make pdfThe Makefile states that this builds all guides in PDF format. It also provides individual PDF targets, including `docs/PacketFence_Installation_Guide.pdf` and `docs/PacketFence_Upgrade_Guide.pdf`. The target requires `asciidoctor-pdf` and reads version values from `config.mk`; the repository excerpt does not install that dependency or define the resulting file contents beyond the target names.
This build is useful for an administrator because the installation and upgrade guides are part of the same repository, but it is not a PacketFence deployment. A successful `make pdf` only confirms that the relevant documentation toolchain can process the guide sources. Actual service installation, database setup, network-device configuration, and first portal or 802.1X enforcement must follow the Administration Guide rather than this Makefile.
Captive Portal, 802.1X, and Remediation Boundaries
PacketFence's most concrete use case is controlled admission for a network that contains more than one kind of client. Registration can place an unknown device into a controlled onboarding path, while remediation gives administrators a mechanism for satisfying access requirements before granting broader connectivity. The README does not define the available remediation states, supported browsers, portal templates, or form workflows, so those details should not be inferred.
For managed access, the documented 802.1X support addresses a different boundary. Instead of relying only on a browser-based portal, an organization can use an authentication mechanism tied to network access infrastructure. PacketFence also offers layer-2 isolation for devices considered problematic. That capability is narrower than general firewalling or intrusion prevention, but it fits the NAC problem of containing a device that should not receive normal network access.
BYOD management is listed as a separate option because personal devices often require different enrollment and policy paths from managed endpoints. The README does not state how BYOD profiles are defined, whether mobile-device management protocols are included, or how identity providers are connected. Those omissions make BYOD one of the areas that requires documentation review before adoption.
The README does not document rollback behavior for portal registration, failed remediation, an unreachable external scanner, or an unavailable identity service. It also does not describe failover during an enforcement outage. These are operationally significant boundaries for a network access control system, but no failure behavior should be assumed without consulting the Administration Guide and release documentation.
GPL-2.0 Obligations and Upgrade Considerations
PacketFence is licensed under the GNU General Public License v2, as confirmed by both the repository metadata and the README's license section. This is an open source distribution model rather than a proprietary commercial license. The README also points to community support and commercial support, but it does not state the price, scope, response time, or terms of that support offering.
The source repository includes packaging for multiple formats, including directories named `debian/` and `rpm/`, as well as container-related files. Those names indicate deployment artifacts, but they do not establish which distributions, architectures, or versions are supported by the current release. Release notes should be consulted before choosing a package route.
Maintenance activity is visible in the repository history. The listed releases include v15.2.0 on 2026-08-24, v15.1.0 on 2026-05-21, and v15.0.0 on 2025-10-27. This supports the conclusion that the repository currently has recent code changes, but it does not by itself guarantee compatibility with an existing deployment.
Upgrade planning has a dedicated `docs/PacketFence_Upgrade_Guide.asciidoc`, while user-facing changes are recorded in `NEWS.asciidoc`. The README does not provide an automatic upgrade procedure, rollback command, or migration compatibility matrix. Operators should treat those files and the Administration Guide as required deployment documentation, especially when moving across the major v15.0.0 boundary.
Where PacketFence Is the Wrong Network Control Choice
PacketFence is a poor fit for environments that need only a static guest portal or basic VLAN assignment. Its documented feature set assumes a broader control problem involving registration, remediation, identity-aware access, BYOD, wired and wireless management, and isolation. A simpler device-specific configuration may be easier to operate when none of those requirements exists.
It is also the wrong choice for teams seeking a lightweight open source service that can be installed from README commands alone. The README contains no package installation command, dependency list, service startup command, or initial configuration example. It delegates those steps to external documentation. This does not make the project unsuitable, but it does make the README an insufficient deployment artifact.
The system may be unsuitable where universal support for unmanaged network hardware is mandatory. The README asks network vendors and users to contribute switches, access points, and wireless controllers for broader support. Without a published compatibility list in the repository excerpt, an organization cannot infer that its existing infrastructure will be supported.
A lighter and conceptually different alternative is to enforce access directly with existing network infrastructure, such as per-port VLANs and static access groups. That approach has fewer application-level admission features, but it avoids introducing a central NAC service for simple isolation. PacketFence becomes more relevant once the network must combine portal registration, remediation, 802.1X, external security signals, and differing policies across many devices.
Perl Codebase, External Dependencies, and Contributor Workflow
Perl is the repository's primary language, while the top-level tree also contains Go code and C sources for MariaDB user-defined functions. That combination indicates a mixed codebase, but the README does not explain which functions are implemented in Go, how the components communicate, or what version requirements apply. An engineer evaluating custom integrations should inspect the relevant source and developer documentation before assuming that Perl alone controls every runtime path.
The contributor workflow is unusually concrete for a README. Changes normally occur in branches, then reach the `devel` default branch through a pull request and code review. The repository lists tests under `t/`, development utilities under `tools/`, continuous integration configuration under `.gitlab-ci.yml`, and CI assets under `ci/`. A contributor can therefore identify conventional test and automation locations, although the README does not document the command needed to run the complete test suite.
Contributions are not limited to source patches. The project seeks network and access-point hardware from vendors, security product integration support, documentation review, translations, tests, and mailing-list participation. These requests reveal a practical maintenance burden: compatibility and integrations depend on knowledge or access involving infrastructure outside the core Perl codebase.
Editorial conclusion
PacketFence fits network teams that need centralized admission control across wired and wireless infrastructure and are prepared to configure network devices and external services. It is a poor fit for a developer seeking a self-contained library or an administrator who cannot supply the documented deployment environment. Before adoption, verify the supported switch, access point, wireless controller, database, and service requirements in the Administration Guide, then confirm the expected behavior of your chosen upgrade path against the Upgrade Guide.
Frequently asked questions
What is PacketFence used for?
PacketFence is a network access control system for determining who or what can connect and what access a device receives. Its documented capabilities include a captive portal, remediation, 802.1X, BYOD management, centralized wired and wireless management, and layer-2 isolation.
How do I install PacketFence?
The README does not include installation commands. It directs users to the PacketFence Administration Guide at `https://packetfence.org/support/index.html#/documentation`.
Does PacketFence support 802.1X and network-device isolation?
Yes. The README explicitly lists 802.1X support and layer-2 isolation of problematic devices, although it does not provide a device compatibility matrix or detailed policy examples.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/inverse-inc-packetfence)Star history chart for your README
[](https://hysenlabs.com/projects/inverse-inc-packetfence)Was this useful?