README
Welcome to the TOUGHRADIUS project!
_____ _____ _ _ _____ _ _ _____ ___ _____ _ _ _ _____
|_ _| / _ \ | | | | / ___| | | | | | _ \ / | | _ \ | | | | | | / ___/
| | | | | | | | | | | | | |_| | | |_| | / /| | | | | | | | | | | | | |___
| | | | | | | | | | | | _ | _ | | _ / / / | | | | | | | | | | | | \___ \
| | | |_| | | |_| | | |_| | | | | | | | \ \ / / | | | |_| | | | | |_| | ___| |
|_| \_____/ \_____/ \_____/ |_| |_| |_| \_\ /_/ |_| |_____/ |_| \_____/ /_____/TOUGHRADIUS
A powerful, open-source RADIUS server designed for ISPs, enterprise networks, and carriers. Supports standard RADIUS protocols, RadSec (RADIUS over TLS), and a modern Web management interface.
✨ Core Features
RADIUS Protocol Support
🔐 Standard RADIUS - Full support for RFC 2865/2866 authentication and accounting protocols
🔒 RadSec - TLS encrypted RADIUS over TCP (RFC 6614)
🌐 Multi-Vendor Support - Compatible with major network devices like Cisco, Mikrotik, Huawei, etc.
⚡ High Performance - Built with Go, supporting high concurrency processing
Management Features
📊 React Admin Interface - Modern Web management dashboard
👥 User Management - Complete user account and profile management
📈 Real-time Monitoring - Online session monitoring and accounting record queries
🔍 Log Auditing - Detailed authentication and accounting logs
Integration Capabilities
Multi-Database Support - PostgreSQL, SQLite
🔌 Flexible Extension - Supports custom authentication and accounting logic
📡 Multi-Vendor VSA - Huawei, Mikrotik, Cisco, H3C, etc.
🚀 Quick Start
Prerequisites
Go 1.24+ (for building from source)
PostgreSQL or SQLite
Node.js 18+ (for frontend development)
Installation
1. Build from Source
2. Use Pre-compiled Version
Download the latest version from the Releases page.
Configuration
Copy the configuration template:
Edit
toughradius.prod.ymlconfiguration file:
EAP Configuration
You can fine-tune authentication behavior via system configuration (sys_config):
radius.EapMethod: Preferred EAP method (defaulteap-md5).radius.EapEnabledHandlers: List of allowed EAP handlers, separated by commas, e.g.,eap-md5,eap-mschapv2. Use*to enable all registered handlers.
This allows you to quickly disable unauthorized EAP methods without interrupting the service.
Running
Access Web Management Interface: http://localhost:1816
Default Admin Account:
Username: admin
Password: Please check the initialization log output
📖 Documentation
Architecture - v9 version architecture design
React Admin Refactor - Frontend management interface explanation
SQLite Support - SQLite database configuration
Environment Variables - Environment variable configuration guide
🏗️ Project Structure
🔧 Development
Backend Development
Frontend Development
🤝 Contribution
We welcome contributions in various forms, including but not limited to:
🐛 Submitting Bug reports and feature requests
📝 Improving documentation
💻 Submitting code patches and new features
🌍 Helping with translation
📜 License
This project is licensed under the MIT License.
Third-Party Resources
The RADIUS dictionary files in the share/ directory are derived from the FreeRADIUS project and are licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
🔗 Related Links
💎 Sponsors
Thanks to JetBrains for supporting this project!
Last updated
Was this helpful?