Перейти к содержимому

Roadmap

Taranac has been moving in one direction the whole time: taking control of network access away from scattered device configs and giving it to a single policy core. First the commands people run on devices, then the way devices get onto the network at all, then the identities behind both — and now the devices themselves, as things the platform knows rather than just talks to.

This page is that line, drawn out. Above the marker is what has shipped; below it are the directions we’re building toward.

begins from 2016

TacacsGUI

Before Taranac there was TacacsGUI — a free web interface for TACACS+ that ended up running in thousands of networks. It solved a real problem, and in solving it, it showed where the ceiling was: a front end wrapped around one daemon can make that daemon easier to configure, but it can’t decide anything. Policy, identity and device knowledge stayed scattered across config files.

The old site is still online as a frozen archive.

the rebuildshipped

Taranac — a new concept

Not a new version of the old thing — a new one. New concept: the platform owns identity, devices and policy, and the protocol engines answer from that core instead of each keeping its own truth. New architecture: separate engines for TACACS+, RADIUS and 802.1X, one shared store, one policy table. New modules built around that core rather than bolted onto a daemon. And a new approach to shipping — containers, versioned releases, an upgrade path.

The name changed with the scope: TACACS+ was no longer the whole story.

1.0.1shipped

The base platform

The first public release, and already a full platform rather than a preview:

  • Core — users and groups, role-based access, settings, audit trail, SMTP and syslog, LDAP / Active Directory as an identity source.
  • TACACS+ device administration — built on Marc Huber’s tac_plus-ng, driven by Taranac policy: per-command authorization, vendor profiles, full session logging.
  • RADIUS AAA — FreeRADIUS with a Taranac policy module, so both protocols answer from the same rules. Ports 1812 / 1813.
  • 802.1X NAC — its own FreeRADIUS instance, in its own container on ports 1814 / 1815, so network access and device administration never contend for the same daemon: endpoints, MAB, dynamic VLAN assignment.
  • Captive portal and PKI — guest onboarding, an internal CA, EAP-TLS certificates.
  • MFA — including Taranac’s own push app, with TOTP that keeps working offline.
1.0.3shipped

High availability

Authentication is the kind of service where an outage is measured in people who can’t work. So Taranac learned to run as a cluster: PostgreSQL managed by Patroni with automatic leader election and failover, and a lightweight etcd witness so a two-node partition can’t split-brain.

Each node answers AAA from its own local replica, which is the part that matters — TACACS+, RADIUS and 802.1X keep serving straight through a primary crash, and writes resume on the new primary. An existing single node converts into a cluster in place.

It is also the one capability a licence gates. Everything else in the platform is unconditional, in every install.

1.1.0shipped

Configuration Tracker

The platform started knowing what devices are, not just what they let people do. Point a tracked config at a device, pick a recipe of commands, and Taranac captures versioned snapshots on a schedule — with scrub sets masking secrets before anything is stored, content-hash dedup, side-by-side diffs and baseline tags.

Two pieces arrived underneath it that matter more than the feature itself. Collectors: the built-in one for a flat network, and standalone collectors that dial out to the core for segmented or remote sites — no inbound path to open. And a credentials vault that mints just-in-time logins for a single privileged run, so the long-lived secret never leaves it.

1.1.1shipped

Virtual appliance

One file instead of an afternoon. The OVA / qcow2 appliance imports into any hypervisor, walks a first-boot wizard on the console — hostname, network, timezone, a login password, then the address and the first administrator — and brings the whole stack up offline, from images already baked into the disk.

No registry is contacted at any point, which is what makes it usable in closed segments. Underneath it is the same bundle as a manual install, so the same ./taranac commands and the same upgrade path apply afterwards.

1.2.0shipped

Reports

Taranac has always held the data worth reporting on — sessions, endpoints, devices, authentication logs, configuration history. Reporting is what gets it out of the screens and into something you can send to someone.

The model is preset-first. A report is assembled from ready-made sections over a time range and a filter, and comes out as a branded PDF — or CSV / XLSX for the raw tables. You can shape a raw table into a bar, line or pie and reorder pages, but that flexibility isn’t the point: the value is that the presets sit on top of data no one else has in one place — identity, device, configuration and session, already joined. Scheduling and delivery reuse the platform’s existing scheduler and mail machinery.

The reports people ask for first tend to be evidence: access reviews, MFA coverage, configuration drift.

1.2.2 → 1.2.8shipped

Identity beyond Active Directory

The directory integration was built for Active Directory, and only its code said so — bind by UPN, look accounts up by sAMAccountName, track them by objectGUID. A directory now has a type — Active Directory, OpenLDAP, FreeIPA, Google Workspace or generic — and the type supplies both what the protocol can do there and the schema guesses you are free to overwrite.

The same boundary kept falling. MS-CHAPv2 used to mean a domain join; it now also works against any directory that publishes the account’s NT hash — FreeIPA does — with no join and no winbind, and which mechanism a login takes is decided by the user’s own directory. Machines are imported from any directory that holds them, and an endpoint can be classified by where its machine sits: an LDAP DN, matched component-wise, or an LDAP group it belongs to. The release that removed the last domain requirement added the counterweight — console access is one decision for the whole installation, so a directory synchronised for AAA and NAC policy no longer hands every account it brings in a valid login to the management interface.

1.2.3 → 1.2.8shipped

Modules, and a cluster in three commands

A remote collector or a DMZ captive portal is attached with one command — the core prints it, the site runs it. No CA file to carry, no compose file to edit, no archive to copy: the module downloads its own deployment bundle over the channel it just authenticated on, and pins the certificate it was shown. It can be asked where it points and what it last did, and it uninstalls cleanly. The virtual appliance can be one of these rather than a server — its first-boot wizard asks whether the box is Taranac itself, or a Collector, Captive Portal or HA Witness.

The cluster got the same treatment. ./taranac cluster init, add-witness and add-node replace hand-editing .env on every machine and carrying TLS material and the master key between them — and cluster verify --rehearse answers “can this cluster survive losing a node?” by actually handing leadership over, rather than by describing what would happen.

1.3.0shipped

Discovery & device profiling

The platform stopped merely talking to devices and started knowing what they are. Device Profiling gives every endpoint a name from a profile tree — Any device › Computer › Windows › Laptop — together with how sure it is and one sentence saying why the name stops where it does. An endpoint group can classify on that name, so “everything under Computer › Windows” becomes a VLAN.

The name is only as good as what was heard, so the same release brought the sources that hear it. A passive DHCP Probe that never sends a byte; a scanner on the collector that listens first and asks quiet devices who they are only where you allow it; SNMP polling that asks network devices for their model, serial, ports, neighbours and forwarding table; and Web Probe, which asks your own script. The forwarding tables and neighbour tables also answer which switch port an endpoint is actually plugged into, and why.

What no rule explains lands on a worklist that can be handed to an AI assistant and brought back as a bundle you preview before anything changes. And a device type learned in one network can reach every installation between releases, through a signed rule-set exchange with taranac.pro.

1.3.0shipped

A portal that opens the network itself

A captive portal on its own host can answer the question every guest network eventually runs into: who opens the network? Either the network does — the guest joins a group and the switch or access point is asked to re-authorize them — or the portal does, routing its own segment and admitting the guest in its own datapath: firewall, per-guest speed limits, NAT, client isolation, with no NAS asked for anything.

On Wi-Fi that difference is the guest’s experience. A re-authorization into another VLAN drops the station; a portal that admits the guest itself never interrupts the connection, tells the phone it is free through the RFC 8908 captive-portal API, and the sign-in window closes on its own. The installer asks the host which interface faces the guests and which is the way out, rather than having anyone type a machine they can’t see into the console.

you are here
planned

Network map

Both layers of it are already collected. The NAC layer: every session records which endpoint sat on which device, on which port, in which VLAN. The SNMP layer: the neighbour and forwarding tables that show the backbone, the stacks and the devices that never authenticate to anything. What is missing is the picture.

What makes it ours isn’t the topology. It’s that every node and link carries an authorization verdict — authenticated and by what method, MAB bypass, rejected, never seen — so the map is coloured by trust. Click a node and you get its configuration history, its sessions, its profile and its neighbours in one place. A topology tool can’t do that; it has no idea who anyone is.

planned

Trusted or not

The scanner already finds what is present on a segment. The next step is to hold that against what has authenticated and answer one question per host: trusted or not?

The case it exists for is the quiet one. A port where 802.1X was never switched on, in a VLAN that everything else in it has earned, with a device on the end that nobody vouched for. Nothing is broken, no alarm fires, and no report shows it — because the device never talked to us at all. Every host the scanner sees would land in one of three buckets: authorized, seen but never authenticated, or untrusted.

It will report, not enforce. What you do about a finding stays a decision for a person and for policy — and the scanning itself keeps the rules it has today: listening is the default, and anything that sends is chosen per zone.

planned

SNMP events and hardware lifecycle

SNMP polling answers what a device is on each pass. Two things it doesn’t do yet. Traps arriving as alerts, so the picture updates on events rather than on the next poll. And lifecycle dates behind the serial numbers it already collects — end of sale, end of support — so a report can say which hardware is running out of road before it does.