All Projects → talkincode → Toughradius

talkincode / Toughradius

Licence: lgpl-3.0
Beautiful open source RadiusServer

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Toughradius

Sureness
A simple and efficient open-source security framework that focus on protection of restful api.
Stars: ✭ 254 (-32.45%)
Mutual labels:  springboot, authentication
Freeradius Server
FreeRADIUS - A multi-protocol policy server.
Stars: ✭ 1,379 (+266.76%)
Mutual labels:  authentication, radius
Gatekeeper
Gatekeeper: An Authentication & Authorization Library
Stars: ✭ 356 (-5.32%)
Mutual labels:  authentication
Awesome Spring Boot
Spring Boot Resources
Stars: ✭ 3,857 (+925.8%)
Mutual labels:  springboot
Code Generator
止步传统CRUD,进阶代码优化:一套基于Spring Boot+Vue+Shiro前后端分离的代码生成器
Stars: ✭ 364 (-3.19%)
Mutual labels:  springboot
My Shop
my-shop基于Spring+SpringMVC+Mybatis+Shiro+redis+Vue+Swagger2小程序商城+(vue)微信商城+综合管理后台+网站商城+运营商平台+APP平台+第三方平台 = 综合一体化平台.前后端分离,分布式敏捷开发系统架构,提供整套公共微服务服务模块:内容管理、支付中心、用户管理(包括第三方)、微信平台、存储系统、配置中心、日志分析、任务和通知等,支持服务治理、监控和追踪,努力为中小型企业打造全方位J2EE企业级开发解决方案, 致力打造通用综合一体化管理平台。官方qq群:711281203,群2:685261895 (如有问题,请联系,小天qq:2366307000)
Stars: ✭ 359 (-4.52%)
Mutual labels:  springboot
Daloradius
daloRADIUS is an advanced RADIUS web management application aimed at managing hotspots and general-purpose ISP deployments. It features user management, graphical reporting, accounting, a billing engine and integrates with GoogleMaps for geo-locating.
Stars: ✭ 368 (-2.13%)
Mutual labels:  radius
Gin Oauth2
Middleware for Gin Framework users who also want to use OAuth2
Stars: ✭ 351 (-6.65%)
Mutual labels:  authentication
Sika Code
开源改变世界,让世界没有难写的代码
Stars: ✭ 376 (+0%)
Mutual labels:  springboot
Xinguan
SpringBoot+Vue+Element-UI (新冠-物资管理系统) 纯前后端分离项目, 抗疫相关物料的管理系统,领用、派发记录,库存查询统计。寂寞消遣之作~, 项目预览地址:https://www.zykhome.club 武汉加油
Stars: ✭ 359 (-4.52%)
Mutual labels:  springboot
Wedatasphere
WeDataSphere is a financial level one-stop open-source suitcase for big data platforms. Currently the source code of Scriptis and Linkis has already been released to the open-source community. WeDataSphere, Big Data Made Easy!
Stars: ✭ 372 (-1.06%)
Mutual labels:  portal
Permissionmanager
Admin interface for managing users, roles, permissions, using Backpack CRUD
Stars: ✭ 363 (-3.46%)
Mutual labels:  authentication
Lion
使用Gradle构建,基于Java 8/11/13、SpringBoot 2.2.6.RELEASE、SpringCloud Hoxton.SR2、Spring Cloud Alibaba 2.2.0.RELEASE、MyBatis Plus 3.3.1等核心技术体系实现的一套支持云原生的分布式微服务架构,提供OAuth2/JWT权限认证、分布式事务、灰度、限流、熔断降级、分布式锁、链路追踪、MQ等功能,支持Docker容器化部署、镜像交付、K8S容器编排
Stars: ✭ 360 (-4.26%)
Mutual labels:  springboot
Database Rider
Database testing made easy!
Stars: ✭ 370 (-1.6%)
Mutual labels:  springboot
Lamp Cloud
lamp-cloud 基于Jdk11 + SpringCloud + SpringBoot的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
Stars: ✭ 4,125 (+997.07%)
Mutual labels:  springboot
Piper
piper - a distributed workflow engine
Stars: ✭ 374 (-0.53%)
Mutual labels:  springboot
React Gatsby Firebase Authentication
🐣🔥Starter Project / Boilerplate for Authentication with Firebase and plain React in Gatsby.js
Stars: ✭ 356 (-5.32%)
Mutual labels:  authentication
Ngx Planet
🚀🌍🚀A powerful, reliable, fully-featured and production ready Micro Frontend library for Angular.
Stars: ✭ 361 (-3.99%)
Mutual labels:  portal
Spring Boot Projects
该仓库中主要是 Spring Boot 的入门学习教程以及一些常用的 Spring Boot 实战项目教程,包括 Spring Boot 使用的各种示例代码,同时也包括一些实战项目的项目源码和效果展示,实战项目包括基本的 web 开发以及目前大家普遍使用的线上博客项目/企业大型商城系统/前后端分离实践项目等,摆脱各种 hello world 入门案例的束缚,真正的掌握 Spring Boot 开发。
Stars: ✭ 4,022 (+969.68%)
Mutual labels:  springboot
Angular Token
🔑 Token based authentication service for Angular with interceptor and multi-user support. Works best with devise token auth for Rails. Example:
Stars: ✭ 376 (+0%)
Mutual labels:  authentication

About TOUGHRADIUS

             )                        )   (                (       (              (
  *   )   ( /(            (        ( /(   )\ )     (       )\ )    )\ )           )\ )              (
` )  /(   )\())      (    )\ )     )\()) (()/(     )\     (()/(   (()/(      (   (()/(     (   (    )\ )
 ( )(_)) ((_)\       )\  (()/(    ((_)\   /(_)) ((((_)(    /(_))   /(_))     )\   /(_))    )\  )\  (()/(
(_(_())    ((_)   _ ((_)  /(_))_   _((_) (_))    )\ _ )\  (_))_   (_))    _ ((_) (_))     ((_)((_)  /(_))
|_   _|   / _ \  | | | | (_)) __| | || | | _ \   (_)_\(_)  |   \  |_ _|  | | | | / __|    \ \ / /  (_) /
  | |    | (_) | | |_| |   | (_ | | __ | |   /    / _ \    | |) |  | |   | |_| | \__ \     \ V /    / _ \
  |_|     \___/   \___/     \___| |_||_| |_|_\   /_/ \_\   |___/  |___|   \___/  |___/      \_/     \___/

                                          /)
    _   __   __   _    _/_  ___       _  (/   _  _/_  __      _ _/_      _  ______
    (_(/ (_(/ (_(/  .  (__ (_) (_(_  (_/_/ )_/_)_(__ / (_(_(_(__(__  .  (__(_) // (_
                                    .-/
                                   (_/

中文

TOUGHRADIUS is an open source Radius service software that supports standard RADIUS protocol (RFC 2865, RFC 2866) and provides a complete AAA implementation. It supports flexible policy management, supports all major access devices and easily extends with rich billing policy support.

Redeveloped from version 6.x onwards, based on the Java language. A high-performance RADIUS processing engine is provided, along with a simple and easy-to-use web management interface that is easy to use.

TOUGHRADIUS is similar in functionality to freeRADIUS, but it is simpler to use and easier to develop by extension.

Links

Quick start

System environment dependency

  • Operating System:Support cross-platform deployment (Linux, Windows, MacOS, etc.)
  • java version: 1.8 or higher
  • Database server: MySQL/MariaDB

Database initialization

Please do the installation and configuration yourself, first make sure your database server is running.

Running database creation scripts and creating dedicated users

create database toughradius DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON toughradius.* TO [email protected]'127.0.0.1' IDENTIFIED BY 'radpwd' WITH GRANT OPTION;FLUSH PRIVILEGES;

Creating Database Tables

create table if not exists tr_bras
(
    id bigint auto_increment primary key,
    identifier varchar(128) null,
    name varchar(64) not null,
    ipaddr varchar(32) null,
    vendor_id varchar(32) not null,
    portal_vendor varchar(32) not null,
    secret varchar(64) not null,
    coa_port int not null,
    ac_port int not null,
    auth_limit int null,
    acct_limit int null,
    status enum('enabled', 'disabled') null,
    remark varchar(512) null,
    create_time datetime not null
);

create index ix_tr_bras_identifier on tr_bras (identifier);

create index ix_tr_bras_ipaddr on tr_bras (ipaddr);

create table if not exists tr_config
(
    id bigint auto_increment primary key,
    type varchar(32) not null,
    name varchar(128) not null,
    value varchar(255) null,
    remark varchar(255) null
);

create table if not exists tr_subscribe
(
    id bigint auto_increment primary key,
    node_id bigint default 0 not null,
    subscriber varchar(32) null,
    realname varchar(32) null,
    password varchar(128) not null,
    domain varchar(128) null,
    addr_pool varchar(128) null,
    policy varchar(512) null,
    is_online int null,
    active_num int null,
    bind_mac tinyint(1) null,
    bind_vlan tinyint(1) null,
    ip_addr varchar(32) null,
    mac_addr varchar(32) null,
    in_vlan int null,
    out_vlan int null,
    up_rate bigint null,
    down_rate bigint null,
    up_peak_rate bigint null,
    down_peak_rate bigint null,
    up_rate_code varchar(32) null,
    down_rate_code varchar(32) null,
    status enum('enabled', 'disabled') null,
    remark varchar(512) null,
    begin_time datetime not null,
    expire_time datetime not null,
    create_time datetime not null,
    update_time datetime null
);

create index ix_tr_subscribe_create_time
    on tr_subscribe (create_time);

create index ix_tr_subscribe_expire_time
    on tr_subscribe (expire_time);

create index ix_tr_subscribe_status
    on tr_subscribe (status);

create index ix_tr_subscribe_subscriber
    on tr_subscribe (subscriber);

create index ix_tr_subscribe_update_time
    on tr_subscribe (update_time);

Inserting test data

INSERT INTO toughradius.tr_bras
(identifier, name, ipaddr, vendor_id, portal_vendor,secret, coa_port,ac_port, auth_limit, acct_limit, STATUS, remark, create_time)
VALUES ('radius-tester', 'radius-tester', '127.0.0.1', '14988',"cmccv1", 'secret', 3799,2000, 1000, 1000, NULL, '0', '2019-03-01 14:07:46');

INSERT INTO toughradius.tr_subscribe
(node_id,  subscriber, realname, password, domain, addr_pool, policy, is_online, active_num,
 bind_mac, bind_vlan, ip_addr, mac_addr, in_vlan, out_vlan, up_rate, down_rate, up_peak_rate, 
 down_peak_rate, up_rate_code,down_rate_code, status, remark, begin_time, expire_time, create_time, update_time)
VALUES (0, 'test01', '', '888888',  null, null, null, null, 10, 0, 0, '', '', 0, 0, 10.000, 10.000, 100.000, 100.000,
        '10', '10', 'enabled', '', '2019-03-01 14:13:02', '2019-03-01 14:13:00', '2019-03-01 14:12:59', '2019-03-01 14:12:56');

Run docker container

export RADIUS_DBURL="jdbc:mysql://172.17.0.1:3306/toughradius?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true"
export RADIUS_DBUSER=raduser
export RADIUS_DBPWD=radpwd

docker run --name toughradius -d \
-v /tradiusdata/vardata:/var/toughradius \
--env RADIUS_DBURL \
--env RADIUS_DBUSER \
--env RADIUS_DBPWD \
-p 1816:1816/tcp \
-p 1812:1812/udp \
-p 1813:1813/udp \
talkincode/toughradius:latest

More references to environmental variables

Run with docker-compose

Run the main program

java -jar -Xms256M -Xmx1024M /opt/toughradius-latest.jar --spring.profiles.active=prod

Note the path to the jar file (toughradius-latest.jar).

Linux systemd service configuration

/opt/application-prod.properties

# web access port
server.port = 1816

# If https is enabled, just cancel the following comment
#server.security.require-ssl=true
#server.ssl.key-store-type=PKCS12
#server.ssl.key-store=classpath:toughradius.p12
#server.ssl.key-store-password=toughstruct
#server.ssl.key-alias=toughradius

# Log configuration, either logback-prod.xml or logback-dev.xml, logging directory /var/toughradius/logs
logging.config=classpath:logback-prod.xml

# Database configuration
spring.datasource.url=${RADIUS_DBURL:jdbc:mysql://127.0.0.1:3306/toughradius?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true}
spring.datasource.username=${RADIUS_DBUSER:raduser}
spring.datasource.password=${RADIUS_DBPWD:radpwd}
spring.datasource.max-active=${RADIUS_DBPOOL:120}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

/usr/lib/systemd/system/toughradius.service

[Unit]
Description=toughradius
After=syslog.target

[Service]
WorkingDirectory=/opt
User=root
LimitNOFILE=65535
LimitNPROC=65535
Type=simple
ExecStart=/usr/bin/java -server -jar -Xms256M -Xmx1024M /opt/toughradius-latest.jar  --spring.profiles.active=prod
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

If you understand spring systemd and configuration principles, you can modify it according to your actual needs.

Start the service with the following commands

systemctl enable toughradius
systemctl start toughradius
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].