Terminal Access Controller Access-Control System Plus (TACACS+) is a protocol designed for centralized authentication, authorization, and accounting (AAA) of network devices. Unlike RADIUS which combines authentication and authorization, TACACS+ separates these functions, enabling granular per-command authorization policies — making it the preferred choice for managing router, switch, and firewall access in enterprise networks.
In this guide, we compare three open-source TACACS+ server implementations: tac_plus (the original reference implementation), tac_plus-ng (a modern fork with active development), and tacquito (a lightweight alternative).
What Is TACACS+ and Why Does It Matter?
TACACS+ operates over TCP port 49, encrypting the entire packet body (unlike RADIUS which only encrypts passwords). This makes it more secure for transmitting detailed authorization attributes. The protocol’s key advantage is command-level authorization — you can specify exactly which CLI commands each user or group is allowed to execute on network devices.
Typical use cases include:
- Network device administration — Centralized login for Cisco IOS, Juniper Junos, Arista EOS
- Command authorization — Restricting which users can run
configure terminal,write memory, orreload - Audit logging — Tracking every command executed on every device for compliance
- Role-based access — Mapping Active Directory or LDAP groups to device privilege levels
tac_plus (Original Reference Implementation)
GitHub: DesktopNetworks/tac_plus · Stars: 236 · License: Custom
tac_plus is the original open-source TACACS+ daemon, based on Cisco’s original reference implementation. It provides a mature, battle-tested TACACS+ server with comprehensive configuration options and broad device compatibility.
Configuration
The configuration uses a simple text-based format with clear group and user definitions:
| |
Features
- Full TACACS+ protocol support (authentication, authorization, accounting)
- Per-command authorization with regex-based command matching
- Privilege level mapping (0-15)
- DES and cleartext password support
- File-based accounting logging
- Compatible with Cisco IOS, Junos, and most enterprise network OS
tac_plus-ng (Next Generation Fork)
GitHub: sparticvs/tac_plus-ng · Stars: 151 · License: GPL
tac_plus-ng is an actively maintained fork of the original tac_plus, adding modern features like LDAP/Active Directory integration, improved security, and better logging.
Configuration with LDAP Backend
| |
Features
- All features of original tac_plus
- LDAP and Active Directory integration
- SHA256 password hashing (vs. legacy DES)
- Improved syslog integration
- Active development with regular bug fixes
- Better error messages and debugging
tacquito
GitHub: mcr/tacquito · Stars: 151 · License: BSD
tacquito is a lightweight TACACS+ server implementation written in C, designed to be simple and portable. It provides basic TACACS+ authentication and authorization without the complexity of the full tac_plus configuration syntax.
Configuration
| |
Features
- Lightweight C implementation
- Simple file-based user/group configuration
- DES password support
- Basic command authorization
- Low resource footprint
- Portable across Unix-like systems
Comparison Table
| Feature | tac_plus | tac_plus-ng | tacquito |
|---|---|---|---|
| License | Custom | GPL | BSD |
| Language | C | C | C |
| LDAP/AD Integration | No | Yes | No |
| Password Hashing | DES, cleartext | DES, SHA256 | DES |
| Per-Command Auth | Yes (regex) | Yes (regex) | Yes (regex) |
| Privilege Levels | 0-15 | 0-15 | 0-15 |
| Accounting | File logging | File + syslog | Basic |
| Active Development | No (last update ~2020) | Yes (2024+) | Minimal |
| GitHub Stars | 236 | 151 | 151 |
| Configuration Complexity | Moderate | Moderate | Simple |
| Docker Support | Community | Community | Community |
Docker Deployment
tac_plus-ng Docker Compose
| |
tac_plus Docker Compose
| |
Device Configuration (Cisco IOS)
| |
Choosing the Right TACACS+ Server
Choose tac_plus-ng if:
- You need LDAP or Active Directory integration
- You want modern password hashing (SHA256)
- You need active development and bug fixes
- You’re deploying in a modern enterprise environment
Choose tac_plus if:
- You need the original, battle-tested implementation
- You have simple file-based user management needs
- You’re deploying in an isolated environment without LDAP
- You have existing tac_plus configurations to migrate
Choose tacquito if:
- You need a minimal, lightweight TACACS+ server
- You’re deploying on resource-constrained hardware
- You prefer BSD-licensed software
- Your authorization requirements are simple
Why Self-Host Your TACACS+ Server?
Centralized AAA management is critical for network security compliance. Self-hosting your TACACS+ server ensures that authentication traffic never leaves your network perimeter, audit logs remain under your control, and access policies can be customized without vendor-specific constraints.
For organizations subject to regulatory frameworks like PCI-DSS, SOX, or HIPAA, TACACS+ command-level authorization provides the granular access controls and audit trails required for compliance. Every configuration change on every network device is logged with the operator’s identity, timestamp, and exact command executed.
Compared to commercial AAA solutions like Cisco ISE or Aruba ClearPass, open-source TACACS+ servers eliminate per-device licensing costs and vendor lock-in. They integrate with existing LDAP/Active Directory infrastructure and can be deployed alongside other open-source network management tools like LibreNMS, Oxidized, or Rancid for a complete self-hosted network operations stack.
For broader AAA platform comparisons, see our self-hosted auth platforms guide and TACACS+ server deployment guide. For related network device management, our network configuration management guide covers automated config backup and compliance.
FAQ
What is the difference between TACACS+ and RADIUS?
TACACS+ separates authentication, authorization, and accounting into distinct processes, uses TCP (port 49) for reliable transport, and encrypts the entire packet body. RADIUS combines authentication and authorization, uses UDP (ports 1812/1813), and only encrypts the password field. TACACS+ is preferred for network device administration due to its command-level authorization capabilities.
Can TACACS+ integrate with Active Directory?
Yes, tac_plus-ng supports LDAP/Active Directory integration natively. You configure the LDAP server URI, bind credentials, and group mapping in the configuration file. Users authenticate with their AD credentials, and their group membership determines their privilege level and allowed commands on network devices.
Is TACACS+ secure enough for production use?
TACACS+ encrypts the entire packet body using a shared secret key, protecting credentials and authorization data in transit. For production deployments, use strong shared secrets (minimum 16 characters, random), ensure the TACACS+ server is on a secure management network, and regularly review accounting logs. tac_plus-ng’s SHA256 password hashing adds an additional layer of security for local accounts.
How do I configure Cisco IOS to use TACACS+?
Enable AAA with aaa new-model, configure authentication and authorization to use the TACACS+ server group, define the server address and shared key, and set up accounting for exec sessions and commands. A local fallback account ensures you can still access the device if the TACACS+ server becomes unavailable.
Can I use TACACS+ with Juniper or Arista devices?
Yes. Juniper JunOS supports TACACS+ through set system authentication-order tacplus and set system login tacplus-server. Arista EOS uses aaa authentication login default group tacacs+ local with tacacs-server host configuration. The protocol is vendor-agnostic and works with any network OS that implements the TACACS+ client.
What happens if the TACACS+ server goes down?
Configure a local fallback account on each device. The aaa authentication login default group tacacs+ local directive on Cisco IOS tries TACACS+ first, then falls back to the local username database. This ensures administrators can still access devices during TACACS+ server outages, though they’ll bypass centralized authorization and accounting.