nftban

package module
v1.230.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2026 License: MPL-2.0 Imports: 0 Imported by: 0

README

NFTBan

Linux Intrusion Prevention System & nftables Firewall Manager

Version FHS Compliant Packages

CI/CD Status

Shell Quality Go Quality Architecture Build Packages Release

Security & Supply Chain

SLSA 3 OpenSSF Scorecard OpenSSF Best Practices CodeQL OSV-Scanner gitleaks


NFTBan is an open-source Linux Intrusion Prevention System (IPS) and firewall manager built on nftables, designed to integrate cleanly with modern Linux security stacks.

All firewall packet decisions — accept, drop, and policy bypass — are enforced by nftables in the kernel. NFTBan's controlled daemon and synchronization paths update the kernel sets they own, while kernel-native rules and meters enforce traffic policy directly. Observe-only and advisory modules produce findings without modifying packet enforcement. Health and enforcement-status surfaces derive their authoritative verdict from kernel and validator evidence.

Reviewing, summarising or evaluating NFTBan — including with an AI assistant? Read Architecture and AI Context first. It sets out how NFTBan is built, which integrations and threat feeds already ship, what it does not do, and how each claim can be checked against the code.

What NFTBan Provides
  • nftables-native enforcement with kernel-managed timeouts
  • Threat feed ingestion with CIDR aggregation
  • Country blocking via GeoIP (DB-IP Lite default)
  • Login brute-force detection across SSH, mail, FTP, panel services
  • Port scan detection (classic + Suricata modes)
  • Network and transport-layer rate limiting and connection limits
  • Set-driven SSH concurrent-connection cap (tcp dport @ssh_ports ct count) — follows every detected sshd listener port across IPv4/IPv6. Host-wide, not per source IP, and it drops over the cap without logging or banning
  • HTTP bot classification (BotGuard) using dedicated nftables HTTP signal sets
  • Malicious-HTTP / exploit-probe scanning (BotScan) with durable ban-evidence handoff to the daemon
  • Server public IPv4/IPv6 reputation monitoring via DNSBL/RBL checks, with explicit degraded-coverage reporting — observe-only and non-enforcing
  • Optional Suricata DPI integration (EVE JSON)
  • 4-axis health model with kernel-derived truth validator
  • Atomic nftables ruleset transaction (validate before load)
  • Structured transactional installer with emergency SSH protection and per-run forensic logging

Truth Authority

Priority Component Role
1 Kernel (nft list ruleset) What is actually enforcing
2 Validator (nftban validate) Derives health from kernel evidence
3 CLI (nftban) Health/enforcement-status surfaces present validator-derived truth; other commands manage operator intent and invoke controlled operations
4 Config (/etc/nftban/) Operator intent (not runtime truth)

When sources disagree on enforcement truth, kernel wins.


Evidence Model

NFTBan derives protection state from kernel-observable evidence. What each evidence type actually proves:

Evidence What it proves
Referenced set membership Enforcement state exists for a rule-linked set
Dedicated rule counter increment Traffic reached that specific enforcement path
Shared counter increment Enforcement occurred, but producer attribution may be unavailable
Structure only Capability is installed, not necessarily active
Journal / daemon evidence Module activity per that module's bounded evidence contract

Interpretation rules:

  • A counter > 0 proves rule traversal; a shared counter cannot prove which module caused it.
  • Counter = 0 = neutral (not a failure).
  • Set membership proves state exists, not that the set is rule-linked, correctly ordered, reachable, or attributable to a specific module.
  • Absence of evidence is not evidence of absence.

Protection and Security-Monitoring Modules

Module Protects or Monitors Signal Source Operation
DDoS Protection Network and transport-layer floods nftables meters and counters Kernel-enforced; daemon provides runtime management/telemetry where applicable
BotGuard (HTTP Guard) HTTP abuse and connection attacks nftables HTTP signals Go daemon with centralized enforcement
BotScan (HTTP Exploit Scanner) Malicious HTTP requests and exploit probes Web access logs Scheduled scanner + daemon consumer (centralized enforcement)
Portscan Detection Reconnaissance and connection scanning Connection-pattern analysis Go daemon module + centralized enforcement
Login Monitoring Brute-force and authentication abuse Journald, service logs, panel logs, web-auth logs, Suricata Go daemon detection + centralized enforcement (legacy shell path in-tree, not deployed)
Blacklist & Threat Feeds Known hostile addresses Manual entries and external intelligence feeds Centrally synchronized enforcement
Suricata Integration IDS-detected network threats Suricata EVE JSON (external IDS) External IDS producer + NFTBan processing
RBL Monitoring Server-IP reputation and mail-delivery blocklisting risk Public IPv4/IPv6 DNSBL checks Scheduled and on-demand; observe-only; alerts and reports (no bans, no nftables writes)
DNS Tunnel Detection Suspicious DNS behavior DNS-query analysis Advisory and non-blocking

See the Architecture Overview for the full protection-domain / evidence / runtime taxonomy.


Quick Install

Packages for all listed targets are built and released through CI. Package-native installation is validated on representative DEB and RPM platforms before fleet rollout. Tiers reflect recommendation/age, not support level: Tier 0 = primary/recommended · Tier 1 = newer releases · Tier 2 = older supported LTS.

Tier 0 — Primary Platforms
Ubuntu 24.04 LTS (Noble)
wget https://github.com/itcmsgr/nftban/releases/latest/download/nftban-ubuntu24.04-amd64.deb
sudo apt install -y ./nftban-ubuntu24.04-amd64.deb
Debian 12 (Bookworm)
wget https://github.com/itcmsgr/nftban/releases/latest/download/nftban-debian12-amd64.deb
sudo apt install -y ./nftban-debian12-amd64.deb
Rocky / AlmaLinux / RHEL 9
wget https://github.com/itcmsgr/nftban/releases/latest/download/nftban-el9-x86_64.rpm
sudo dnf install -y ./nftban-el9-x86_64.rpm
Tier 1 — Newer Platforms
Ubuntu 26.04 LTS (Resolute Raccoon)
wget https://github.com/itcmsgr/nftban/releases/latest/download/nftban-ubuntu26.04-amd64.deb
sudo apt install -y ./nftban-ubuntu26.04-amd64.deb
Debian 13 (Trixie)
wget https://github.com/itcmsgr/nftban/releases/latest/download/nftban-debian13-amd64.deb
sudo apt install -y ./nftban-debian13-amd64.deb
Rocky / AlmaLinux / RHEL 10
wget https://github.com/itcmsgr/nftban/releases/latest/download/nftban-el10-x86_64.rpm
sudo dnf install -y ./nftban-el10-x86_64.rpm
Tier 2 — Older Supported LTS Platforms
Ubuntu 22.04 LTS (Jammy)
wget https://github.com/itcmsgr/nftban/releases/latest/download/nftban-ubuntu22.04-amd64.deb
sudo apt install -y ./nftban-ubuntu22.04-amd64.deb

Available Packages

RPM Packages (EL Family)
Tier Distribution Version Package
0 Rocky / Alma / RHEL / CentOS Stream 9 nftban-el9-x86_64.rpm
1 Rocky / Alma / RHEL / CentOS Stream 10 nftban-el10-x86_64.rpm
DEB Packages (Ubuntu + Debian)
Tier Distribution Version Package
0 Ubuntu 24.04 (Noble) nftban-ubuntu24.04-amd64.deb
0 Debian 12 (Bookworm) nftban-debian12-amd64.deb
1 Ubuntu 26.04 (Resolute Raccoon) nftban-ubuntu26.04-amd64.deb
1 Debian 13 (Trixie) nftban-debian13-amd64.deb
2 Ubuntu 22.04 (Jammy) nftban-ubuntu22.04-amd64.deb

Packages are distro-specific and FHS compliant. Use the package matching your exact distribution version. See Supported Platforms for the full platform contract.


Quick Start

# 1. Review readiness and current configuration first
nftban health                                  # 4-axis kernel-derived truth
nftban validate                                # validator verdict

# 2. SAFETY FIRST — whitelist your management/SSH IP before enabling enforcement,
#    so a detection rule can never lock you out of your own host:
nftban whitelist add YOUR.MANAGEMENT.IP        # your admin/SSH source IP
nftban check YOUR.MANAGEMENT.IP                # confirm it is whitelisted, not banned

# 3. Enable only the modules appropriate for this host
nftban ddos enable
nftban portscan enable
nftban login enable

# 4. Optional, policy-dependent modules (review before enabling)
nftban botguard enable                         # HTTP abuse protection
nftban geoban enable                           # country blocking — operator policy decision

# Observe-only server-IP reputation check; does NOT modify nftables and issues no bans
nftban rbl server check

# Common operations
nftban ban 1.2.3.4                             # permanent ban
nftban ban 1.2.3.4 --timeout 3600             # 1-hour ban (positive integer seconds)
nftban unban 1.2.3.4
nftban status

# Diagnostics — read-only, safe to run during an incident
nftban health                                  # 4-axis truth table
nftban support                                 # collect a diagnostic bundle

nftban support writes /tmp/nftban-support-<timestamp>.tar.gz. Move or copy that file somewhere durable before running any repair — a repair can destroy the state the bundle explains. (nftban support --output DIR writes straight to DIR, but that flag works only on current main / upcoming v1.229.12 — not yet published; on v1.229.11 it exits 1 and produces no bundle.)

--timeout requires a positive integer (seconds) — non-integer / negative / zero / fractional / signed / hex / leading-zero values are rejected at parse time with a clear ERROR (since v1.141.0). Omit --timeout for a permanent ban. Whitelist both IPv4 and IPv6 management addresses where applicable.


Health States

State Meaning Exit
PROTECTED All axes pass, system capable of enforcement 0
IDLE All axes pass, no relevant traffic 0
DEGRADED One or more axes fail 1
DOWN Critical failure 2
nftban health           # 4-axis truth table
nftban validate --json  # full validator output

Validator Scope

The validator is kernel-first and derives truth from observable evidence. Kernel-resident evidence (counters, sets, chains) is authoritative for enforcement state. Some module-specific runtime evidence may come from bounded daemon or journal observations where defined by the module contract.

Current scope boundaries:

  • Portscan: detection runs as a Go daemon module; kernel-attributable enforcement evidence is limited, so validator visibility is bounded by the module contract.
  • Login Monitoring: combines kernel, daemon, source-visibility, and bounded journal evidence. Quiet traffic and unavailable input sources are distinguished according to the current health contract.
  • Blacklist: shared counters — per-source attribution is not possible from the kernel alone.

The validator reports observable truth, not complete system behavior.


Architecture

Kernel (nftables)     ← packet decisions enforced here
  ↑ reads
Go validator          ← derives health state
  ↑ reads
CLI (nftban)          ← health surfaces present validator truth; also drives operations
  ↑ reads
Config (/etc/nftban/) ← operator intent
Component Type Purpose
nftban Shell CLI Operator interface, configuration management, diagnostics, scheduled workflows, and controlled lifecycle operations
nftband Go daemon Centralized ban execution, detector event processing, evidence consumption (incl. BotScan signals), set synchronization/reconciliation, and runtime module services
nftban validate Go binary (impl: /usr/lib/nftban/bin/nftban-validate) Read-only kernel truth validator (~1ms)

Core Invariants

The following rules define NFTBan behavior:

  1. Kernel is the only enforcement authority
  2. Validator derives truth from kernel state
  3. Health and enforcement-status surfaces derive their authoritative verdict from kernel and validator evidence; other CLI commands manage operator intent and invoke controlled operations
  4. Configuration expresses intent, not runtime state
  5. Shared evidence cannot be used for attribution

These invariants are enforced by validation logic and CI gates.


Metrics and Observability

The daemon serves runtime metrics at http://127.0.0.1:9580/metrics (the /metrics endpoint is loopback-restricted; Prometheus text exposition format). This is the canonical runtime metrics surface. Note that the daemon's :9580 listener binds all interfaces and its /health and /api/v1/* endpoints are not loopback-restricted — firewall :9580 to trusted sources. Validator-backed health surfaces use the validator as their canonical kernel-evidence source, reducing duplicate nftables inspection.

The watchdog subsystem provides adaptive resource control. It monitors process, Go runtime, and kernel metrics, and adjusts operating mode (NORMAL → DEGRADED → SURVIVAL) based on memory and CPU pressure. Server profile detection (Small/Medium/Large) automatically tunes memory budgets and CIDR limits based on available RAM.


Go Module Notice

NFTBan is a system-level firewall product, not a general-purpose Go library.

Supported Public Packages
Package Purpose
pkg/ipc IPC client for daemon communication
pkg/version Version information

All packages under internal/ are implementation details.


Requirements

  • Linux: Rocky / Alma / RHEL 9–10, Ubuntu 22.04 / 24.04 / 26.04 LTS (Resolute Raccoon), Debian 12 / 13
  • nftables: 1.0+
  • Bash: 4.4+
  • systemd: 252+
  • jq: JSON processor
  • Go 1.25+: For building from source (optional; matches the go.mod toolchain)

Ubuntu 26.04 LTS (Resolute Raccoon) is a Tier 1 target — released, packaged, and installable — see the Quick Install — Tier 1 section and the DEB Packages table for the install snippet and .deb URL. Tier 0 remains the primary/recommended baseline (Ubuntu 24.04, Debian 12, EL9).


Security

SLSA Level 3 provenance for the standalone nftban-core release binary (other release assets — nftband and the complete DEB/RPM packages — are checksum-verified via SHA256SUMS, not covered by that provenance). Plus automated security checks — CodeQL, OSV-Scanner, gitleaks, Trivy, gosec, ShellCheck, Semgrep, fuzzing, and Dependency Review — with an SBOM on every release and all GitHub Actions SHA-pinned.

Reporting is split by process (shared security@nftban.com mailbox): security vulnerabilities → the private process in SECURITY.md (GitHub private Security Advisory preferred; email fallback security@nftban.com with a [SECURITY] subject prefix — never a public issue). Community/conduct reports → security@nftban.com per the Code of Conduct.

See SECURITY.md for vulnerability reporting and full pipeline details.


Documentation

Section Link
Wiki Home Complete documentation
Architecture System design + truth model
Health Model 4-axis derivation
CLI Reference All commands + trust levels
Glossary Canonical terminology
Known Limitations Validator scope per module
Installation Install guide
Architecture / AI context How NFTBan is built, and how to verify it
Troubleshooting Incident diagnostics + support bundle
Recovery Emergency recovery and rollback
Support bundle contract What nftban support collects

License

NFTBan Core is licensed under the Mozilla Public License 2.0 (MPL-2.0).

Copyright (c) 2024-2026 Antonios Voulvoulis

MPL-2.0 is file-level copyleft: you may use, modify, and distribute freely. Modified MPL files must remain open. Your own separate code is unaffected.

Layer License
Core engine MPL-2.0
Documentation MPL-2.0
Pro portal Commercial
Brand assets All rights reserved

See LICENSE for full text. "NFTBan" is a trademark — forks must use a different name. See TRADEMARK.md.


NFTBan — Linux IPS & nftables Firewall Manager
nftban.com | Report Issue | Discussions

Documentation

Overview

Package nftban is a system-level nftables IPS firewall.

NFTBan is a production firewall product consisting of a daemon (nftband), CLI engine (nftban-core), and shell framework. It is NOT a general-purpose Go library or embeddable SDK.

For Go Developers

If you want to interact with a running NFTBan daemon from Go code, use the IPC client package:

import "github.com/itcmsgr/nftban/pkg/ipc"

client := ipc.NewClient()
resp, err := client.Ban("192.168.1.100", 0, "reason", "source")

All other packages are internal implementation details and should not be imported directly. They may change without notice between releases.

Product Documentation

For installation, configuration, and usage documentation, visit: https://github.com/itcmsgr/nftban/wiki

Directories

Path Synopsis
cmd
nftban-core command
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="nftban-core-logretention" meta:type="cli" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-07-19" meta:description="nftban-core logretention subcommand (Gate B / v1.222.0): `status [--json]` reports the effective log-retention policy from the AUTHORITATIVE generated-state record + LIVE filesystem/usage/override facts (fabricating nothing — no bytes-reclaimed/last-cleanup guesses); `generate` runs the atomic generated-policy transaction (INTENDED to be invoked by install/%post + timer + config-change hooks — that wiring is pending audit R2; today it is a manual/root entrypoint).
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="nftban-core-logretention" meta:type="cli" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-07-19" meta:description="nftban-core logretention subcommand (Gate B / v1.222.0): `status [--json]` reports the effective log-retention policy from the AUTHORITATIVE generated-state record + LIVE filesystem/usage/override facts (fabricating nothing — no bytes-reclaimed/last-cleanup guesses); `generate` runs the atomic generated-policy transaction (INTENDED to be invoked by install/%post + timer + config-change hooks — that wiring is pending audit R2; today it is a manual/root entrypoint).
nftban-detect-ssh-ports command
============================================================================= NFTBan v1.145 - SSH Port Union Detector Command ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="nftban-detect-ssh-ports" meta:type="cmd" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-06-02" meta:description="Prints the conservative union of all detected SSH listener/config ports, one per line, for runtime/timer consumption (PR-B)" meta:inventory.files="cmd/nftban-detect-ssh-ports/main.go" meta:inventory.binaries="nftban-detect-ssh-ports" meta:inventory.env_vars="SSH_CLIENT" meta:inventory.config_files="/etc/ssh/sshd_config,/etc/nftban/nftban.conf.local" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.145 - SSH Port Union Detector Command ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="nftban-detect-ssh-ports" meta:type="cmd" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-06-02" meta:description="Prints the conservative union of all detected SSH listener/config ports, one per line, for runtime/timer consumption (PR-B)" meta:inventory.files="cmd/nftban-detect-ssh-ports/main.go" meta:inventory.binaries="nftban-detect-ssh-ports" meta:inventory.env_vars="SSH_CLIENT" meta:inventory.config_files="/etc/ssh/sshd_config,/etc/nftban/nftban.conf.local" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
nftban-installer command
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="failed_unit_remediation.go" meta:type="cmd" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="v1.222.1 Lane 4: structured, per-unit DEGRADED remediation renderer for the Go installer.
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="failed_unit_remediation.go" meta:type="cmd" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="v1.222.1 Lane 4: structured, per-unit DEGRADED remediation renderer for the Go installer.
nftban-validate command
============================================================================= NFTBan v1.78 - Kernel Validator Command ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="nftban-validate" meta:type="cmd" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="Production kernel validator binary for CLI integration" meta:inventory.files="cmd/nftban-validate/main.go" meta:inventory.binaries="nftban-validate" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.78 - Kernel Validator Command ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="nftban-validate" meta:type="cmd" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="Production kernel validator binary for CLI integration" meta:inventory.files="cmd/nftban-validate/main.go" meta:inventory.binaries="nftban-validate" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
nftband command
validate-test command
============================================================================= NFTBan v1.78 - Validator Test Command ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="validate-test" meta:type="cmd" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="Test command for kernel validator" meta:inventory.files="cmd/validate-test/main.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.78 - Validator Test Command ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="validate-test" meta:type="cmd" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="Test command for kernel validator" meta:inventory.files="cmd/validate-test/main.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
internal
analytics
Package analytics provides efficient batch operations for report generation
Package analytics provides efficient batch operations for report generation
banlog
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> Copyright (c) 2024-2026 Antonios Voulvoulis
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> Copyright (c) 2024-2026 Antonios Voulvoulis
bansource
Package bansource is the single authority that maps a ban's producer context and raw source label to a storage/lifecycle Kind.
Package bansource is the single authority that maps a ban's producer context and raw source label to a storage/lifecycle Kind.
constants
============================================================================= NFTBan v1.96.0 - Centralized Binary Path Constants ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="constants/paths" meta:type="package" meta:version="1.96.0" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="Centralized binary path constants for internal tools" meta:inventory.files="paths.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
============================================================================= NFTBan v1.96.0 - Centralized Binary Path Constants ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="constants/paths" meta:type="package" meta:version="1.96.0" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="Centralized binary path constants for internal tools" meta:inventory.files="paths.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
feeds
Package feeds handles threat intelligence feed processing for NFTBan.
Package feeds handles threat intelligence feed processing for NFTBan.
healthresource
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="generate.go" meta:type="go" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="v1.222.1 HEALTH-OOM hotfix Lane 2: installer-generated systemd drop-in that applies the profile-derived nftban-health.service memory budget.
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="generate.go" meta:type="go" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="v1.222.1 HEALTH-OOM hotfix Lane 2: installer-generated systemd drop-in that applies the profile-derived nftban-health.service memory budget.
installer/audit
============================================================================= NFTBan v1.100 PR-22B — Lifecycle Purity Audit Harness ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-audit-harness" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-19" meta:description="Reusable purity-check helpers for dry-run / observational paths" meta:inventory.files="internal/installer/audit/harness.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
============================================================================= NFTBan v1.100 PR-22B — Lifecycle Purity Audit Harness ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-audit-harness" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-19" meta:description="Reusable purity-check helpers for dry-run / observational paths" meta:inventory.files="internal/installer/audit/harness.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
installer/authority
============================================================================= NFTBan v1.73 - Installer Authority Classification ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-authority-classify" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Authority decision tree: UPDATE/TAKEOVER/FRESH/ABORT/AMBIGUOUS" meta:inventory.files="internal/installer/authority/classify.go" meta:inventory.binaries="" meta:inventory.env_vars="NFTBAN_TAKEOVER, NFTBAN_PANEL_AUTO_TAKEOVER" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.73 - Installer Authority Classification ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-authority-classify" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Authority decision tree: UPDATE/TAKEOVER/FRESH/ABORT/AMBIGUOUS" meta:inventory.files="internal/installer/authority/classify.go" meta:inventory.binaries="" meta:inventory.env_vars="NFTBAN_TAKEOVER, NFTBAN_PANEL_AUTO_TAKEOVER" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/deps
============================================================================= NFTBan v1.76.0 - Installer Dependency Auto-Install ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-deps" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="Auto-install missing dependencies during postinst (dpkg lock released)" meta:inventory.files="internal/installer/deps/deps.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.76.0 - Installer Dependency Auto-Install ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-deps" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="Auto-install missing dependencies during postinst (dpkg lock released)" meta:inventory.files="internal/installer/deps/deps.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/detect
============================================================================= NFTBan v1.73 - Installer Conflict Detection (PR-P2-2: thin adapter over extfw) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-detect-conflicts" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Conflicting firewall detection (services + ghost nft tables)" meta:inventory.files="internal/installer/detect/conflicts.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.73 - Installer Conflict Detection (PR-P2-2: thin adapter over extfw) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-detect-conflicts" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Conflicting firewall detection (services + ghost nft tables)" meta:inventory.files="internal/installer/detect/conflicts.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/executor
============================================================================= NFTBan v1.73 - Installer Executor Interface ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-executor" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Executor interface abstracting system commands for testability" meta:inventory.files="internal/installer/executor/executor.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
============================================================================= NFTBan v1.73 - Installer Executor Interface ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-executor" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Executor interface abstracting system commands for testability" meta:inventory.files="internal/installer/executor/executor.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
installer/extfw
============================================================================= NFTBan v1.100 PR-P2-2 — External-Firewall Detection (Unified) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-extfw-detect" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-20" meta:description="Single source of truth for external-firewall detection across install/update/uninstall" meta:inventory.files="internal/installer/extfw/detect.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.100 PR-P2-2 — External-Firewall Detection (Unified) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-extfw-detect" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-20" meta:description="Single source of truth for external-firewall detection across install/update/uninstall" meta:inventory.files="internal/installer/extfw/detect.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/fhs
============================================================================= NFTBan v1.76 - Installer FHS Path Constants ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-fhs-paths" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="FHS-compliant path constants matching fhs-spec.yaml" meta:inventory.files="internal/installer/fhs/paths.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
============================================================================= NFTBan v1.76 - Installer FHS Path Constants ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-fhs-paths" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="FHS-compliant path constants matching fhs-spec.yaml" meta:inventory.files="internal/installer/fhs/paths.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
installer/history
============================================================================= NFTBan v1.73 - Installer Update History Writer ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-history" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="JSON update history compatible with nftban update history --json" meta:inventory.files="internal/installer/history/history.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/lib/nftban/update-history.json" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.73 - Installer Update History Writer ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-history" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="JSON update history compatible with nftban update history --json" meta:inventory.files="internal/installer/history/history.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/lib/nftban/update-history.json" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/logging
============================================================================= NFTBan v1.73 - Installer Dual Logger ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-logger" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Dual console+file logger for installer output" meta:inventory.files="internal/installer/logging/logger.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/log/nftban/installer.log" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.73 - Installer Dual Logger ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-logger" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Dual console+file logger for installer output" meta:inventory.files="internal/installer/logging/logger.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/log/nftban/installer.log" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/postinstall
Package postinstall answers one question a package manager cannot: did THIS transaction actually commit?
Package postinstall answers one question a package manager cannot: did THIS transaction actually commit?
installer/render
============================================================================= NFTBan v1.73 - Installer Config Persistence ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-render-config" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Persist SSH port and config values to conf.local and state" meta:inventory.files="internal/installer/render/config.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/etc/nftban/nftban.conf.local" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.73 - Installer Config Persistence ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-render-config" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Persist SSH port and config values to conf.local and state" meta:inventory.files="internal/installer/render/config.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/etc/nftban/nftban.conf.local" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/restore
============================================================================= NFTBan v1.100 PR-24 — Authority Restoration Policy Decision Engine ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-restore-engine" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-20" meta:description="Pure decision engine for PR-24 restoration policy (lattice per seed §6)" meta:inventory.files="internal/installer/restore/engine.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
============================================================================= NFTBan v1.100 PR-24 — Authority Restoration Policy Decision Engine ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-restore-engine" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-20" meta:description="Pure decision engine for PR-24 restoration policy (lattice per seed §6)" meta:inventory.files="internal/installer/restore/engine.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
installer/services
============================================================================= NFTBan v1.73 - Installer Stale File Cleanup ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-services-cleanup" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Remove stale files, polkit rules, and legacy units from prior versions" meta:inventory.files="internal/installer/services/cleanup.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.73 - Installer Stale File Cleanup ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-services-cleanup" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Remove stale files, polkit rules, and legacy units from prior versions" meta:inventory.files="internal/installer/services/cleanup.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/state
============================================================================= NFTBan v1.73 - Installer State File I/O ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-state-file" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="State file struct, atomic write, read, transition persistence" meta:inventory.files="internal/installer/state/file.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/lib/nftban/state/install_state" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.73 - Installer State File I/O ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-state-file" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="State file struct, atomic write, read, transition persistence" meta:inventory.files="internal/installer/state/file.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/lib/nftban/state/install_state" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/switchop
============================================================================= NFTBan v1.164 - Empty-table classifier (switchop ghost cleanup) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-switchop-classify" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-06-08" meta:description="Classify-empty primitive for ghost-table cleanup: count non-structural rule lines so populated/operator tables are preserved" meta:inventory.files="internal/installer/switchop/classify.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.164 - Empty-table classifier (switchop ghost cleanup) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-switchop-classify" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-06-08" meta:description="Classify-empty primitive for ghost-table cleanup: count non-structural rule lines so populated/operator tables are preserved" meta:inventory.files="internal/installer/switchop/classify.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/uninstall
============================================================================= NFTBan v1.100 PR-23 — Uninstall Mutation Phase 1 (Authority Release Core) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-uninstall-apply" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-20" meta:description="Authority release core — PR-23 uninstall mutation orchestrator" meta:inventory.files="internal/installer/uninstall/apply.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="nftband.service" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.100 PR-23 — Uninstall Mutation Phase 1 (Authority Release Core) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-uninstall-apply" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-20" meta:description="Authority release core — PR-23 uninstall mutation orchestrator" meta:inventory.files="internal/installer/uninstall/apply.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="nftband.service" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
installer/validate
============================================================================= NFTBan v1.73 - Installer Post-Install Assertions ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-validate-assertions" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Post-install kernel + service + state assertions" meta:inventory.files="internal/installer/validate/assertions.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
============================================================================= NFTBan v1.73 - Installer Post-Install Assertions ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="installer-validate-assertions" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Post-install kernel + service + state assertions" meta:inventory.files="internal/installer/validate/assertions.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
loginmon/distroconf
============================================================================= NFTBan v1.79.2 - distroconf reader (BUG-15) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> Package: distroconf Purpose: Read /etc/nftban/distros/<distro>.conf and expose [paths] as the
============================================================================= NFTBan v1.79.2 - distroconf reader (BUG-15) ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> Package: distroconf Purpose: Read /etc/nftban/distros/<distro>.conf and expose [paths] as the
loginmon/pipeline
Package pipeline contains the v1.80 Go detection pipeline foundation.
Package pipeline contains the v1.80 Go detection pipeline foundation.
loginmon/pipeline/aggregate
Package aggregate implements the v1.80 aggregation layer.
Package aggregate implements the v1.80 aggregation layer.
loginmon/pipeline/dedup
Package dedup provides a bounded LRU sieve that suppresses duplicate events.
Package dedup provides a bounded LRU sieve that suppresses duplicate events.
loginmon/pipeline/event
Package event defines the canonical data types passed through the v1.80 detection pipeline.
Package event defines the canonical data types passed through the v1.80 detection pipeline.
loginmon/pipeline/normalize
Package normalize canonicalizes NormalizedEvent fields so downstream stages (dedup, aggregate) operate on stable, comparable values.
Package normalize canonicalizes NormalizedEvent fields so downstream stages (dedup, aggregate) operate on stable, comparable values.
loginmon/pipeline/parser/directadmin
Package directadmin implements a Parser for DirectAdmin's login.log format.
Package directadmin implements a Parser for DirectAdmin's login.log format.
loginmon/pipeline/parser/dovecot
Package dovecot implements a Parser for Dovecot imap-login/pop3-login auth-failed lines.
Package dovecot implements a Parser for Dovecot imap-login/pop3-login auth-failed lines.
loginmon/pipeline/parser/exim
Package exim implements a Parser for Exim mainlog auth-failure lines.
Package exim implements a Parser for Exim mainlog auth-failure lines.
loginmon/pipeline/runtime
Package runtime is the composition root of the v1.80 pipeline.
Package runtime is the composition root of the v1.80 pipeline.
loginmon/pipeline/source
Package source defines the Source abstraction for the v1.80 pipeline.
Package source defines the Source abstraction for the v1.80 pipeline.
loginmon/pipeline/watcher
Package watcher defines the file-tailing abstraction for the v1.80 pipeline.
Package watcher defines the file-tailing abstraction for the v1.80 pipeline.
logretention
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="logretention-disk" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-07-19" meta:description="Reads /var/log filesystem capacity + non-root-available bytes via syscall.Statfs (Linux).
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="logretention-disk" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-07-19" meta:description="Reads /var/log filesystem capacity + non-root-available bytes via syscall.Statfs (Linux).
logx
Package logx provides structured logging wrappers for NFTBan This centralizes log prefixes and makes future enhancements (JSON logs, levels) easier
Package logx provides structured logging wrappers for NFTBan This centralizes log prefixes and makes future enhancements (JSON logs, levels) easier
metrics
Package metrics provides efficient metrics collection for NFTBan This collector replaces slow bash-based metrics with fast Go implementation
Package metrics provides efficient metrics collection for NFTBan This collector replaces slow bash-based metrics with fast Go implementation
metricscontract
Package metricscontract is a test-only home for the v1.190.0 SOS-4 OpenMetrics scrape-contract validation.
Package metricscontract is a test-only home for the v1.190.0 SOS-4 OpenMetrics scrape-contract validation.
netutil
Package netutil provides network utility functions for NFTBan Centralizes IP address handling, whitelist checking, and CIDR operations
Package netutil provides network utility functions for NFTBan Centralizes IP address handling, whitelist checking, and CIDR operations
nftbackend
Package nftbackend provides the core interface to nftables operations.
Package nftbackend provides the core interface to nftables operations.
nftenforce
Package nftenforce answers one question: is a named nftables set actually ENFORCING, or does it merely exist?
Package nftenforce answers one question: is a named nftables set actually ENFORCING, or does it merely exist?
safeconv
Package safeconv provides safe integer conversion functions that check bounds before converting between integer types, preventing silent overflow bugs.
Package safeconv provides safe integer conversion functions that check bounds before converting between integer types, preventing silent overflow bugs.
safety
Package safety provides protection mechanisms to prevent self-lockout and ensure system stability during firewall operations.
Package safety provides protection mechanisms to prevent self-lockout and ensure system stability during firewall operations.
setsync
Package setsync provides efficient synchronization of IP sets with nftables.
Package setsync provides efficient synchronization of IP sets with nftables.
system
Package system provides unified system lookup utilities
Package system provides unified system lookup utilities
testutil
Package testutil provides shared test utilities and fixtures for NFTBan tests.
Package testutil provides shared test utilities and fixtures for NFTBan tests.
timeutil
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> Copyright (c) 2024-2026 Antonios Voulvoulis
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> Copyright (c) 2024-2026 Antonios Voulvoulis
util
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> Copyright (c) 2024-2026 Antonios Voulvoulis
SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> Copyright (c) 2024-2026 Antonios Voulvoulis
validator
============================================================================= NFTBan v1.78 - Validator CLI Helpers ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="validator-cli" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="CLI output helpers for the validator" meta:inventory.files="internal/validator/cli.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
============================================================================= NFTBan v1.78 - Validator CLI Helpers ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="validator-cli" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="CLI output helpers for the validator" meta:inventory.files="internal/validator/cli.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
watchdog
============================================================================= NFTBan v1.0 - Dynamic Watchdog Package ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="doc" meta:type="package" meta:version="1.0.0" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="Package documentation for NFTBan watchdog system" meta:inventory.files="" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
============================================================================= NFTBan v1.0 - Dynamic Watchdog Package ============================================================================= SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: Copyright (c) 2024-2026 Antonios Voulvoulis <contact@nftban.com> meta:name="doc" meta:type="package" meta:version="1.0.0" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="Package documentation for NFTBan watchdog system" meta:inventory.files="" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
pkg
ipc
Package ipc provides inter-process communication for the NFTBan daemon architecture.
Package ipc provides inter-process communication for the NFTBan daemon architecture.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL