Blogs

ToughProxy 开源代理服务器首个版本 V1.0.0.1 发布

ToughProxy 开源代理服务器首个版本 V1.0.0.1 发布了。 ToughProxy 是一个代理服务器, 目标是提供一个综合性的代理服务软件,支持 socks5,socks4, http, https代理协议, 针对 Socks5 提供完善的认证机制,以及提供流量控制策略,访问控制策略等。 基础功能清单 Socks5 代理(支持UDP穿透) Socks4 代理 Http代理(未完成) Https代理(未完成) Socks5 Radius 认证, 支持下发限速扩展 Socks5 数据库认证 认证用户管理,批量创建用户支持,用户组支持 全局限速和单个连接限速 连接数控制 源地址,目标地址,域名访问控制 实时连接会话查询,实时流量统计 连接日志存档查询,可自定义保存天数 Http APi 提供 快速开始 注意, linux 下提供了快捷安装脚本,请参考安装包内的 linux-installer.md 系统环境依赖 操作系统:支持跨平台部署 (Linux,Windows,MacOS等) java 版本: 1.8或更高 数据库服务器:MySQL/MariaDB 数据库初始化 数据库的安装配置请自行完成,首先确保你的数据库服务器已经运行 运行创建数据库脚本以及创建专用用户 create database toughproxy DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL ON toughproxy.

继续阅读

TOUGHRADIUS API 文档

API 接口描述 协议采用基于http restfull风格的接口调用方式。 消息发起方:第三方系统。 消息接受方:TOUGHRADIUS系统。 接口请求方法:HTTP GET/POST 请求消息格式:Url Params, application/x-www-form-urlencoded 响应消息格式:JSON {“code”:0,“msg”:“success”,“name1”:“value1”} 消息报文编码:UTF-8, GBK 接口鉴权:Basic Auth, IP白名单 API 接口配置 如果设置了IP白名单或黑名单,系统首先会检查IP名单,如果是白名单直接放行,如果是黑名单立即阻止,否则继续 Basic Auth 流程 Radius 设置 API /admin/config/radius/update 请求参数 radiusInterimIntelval: 记账间隔(秒) radiusTicketHistoryDays: 上网日志保存天数 radiusIgnorePassword: 是否免密码认证 disabled - 否 enable - 是 radiusExpireAddrPool: 过期下发地址池 例子: /admin/config/radius/update?radiusInterimIntelval=15&radiusTicketHistoryDays=180&radiusIgnorePassword=disabled&radiusExpireAddrPool=pool 响应结果 {“code”:0,“msg”:“update radius config done”,“msgtype”:“info”,“data”:null}

继续阅读

TOUGHRADIUS 开源 RADIUS V6.1.0.1 发布

关于版本 TOUGHRADIUS V6 是一个全新设计的版本,是的,在V5的时候我也这么说过,但是这次真的不一样的,因为 V6 已经被真正的用在了生产环境中。 V6 版本采用 java 重新开发,但真正重大意义不在于开发语言,而是V6版本更贴近用户,比如更易于部署,更易于开发扩展,更关注使用体验,TOUGHRADIUS V1,V2版本参杂太多的业务而变得复杂,V3,V4 版本是没有出现过的版本, V5是一次失败的尝试,而 V6 是重生。 TOUGHRADIUS 是一个开源的Radius服务软件,支持标准RADIUS协议(RFC 2865, RFC 2866),提供完整的AAA实现。支持灵活的策略管理,支持各种主流接入设备并轻松扩展,具备丰富的计费策略支持。 至 6.x 版本开始,基于Java语言重新开发。提供了一个高性能的 RADIUS 处理引擎,同时提供了一个简洁易用的 WEB管理界面,可以轻松上手。 TOUGHRADIUS 的功能类似于 freeRADIUS,但它使用起来更简单,更易于扩展开发。 生产环境高性能统计 RADIUS 被广泛的应用在语音计费,宽带计费,虚拟专用网络计费,WLAN接入认证,企业准入认证等场景, TOUGHRADIUS 提供了一个很好的基础引擎。 技术实现 RADIUS技术 RADIUS ( Remote Authentication Dial In User Service 远程认证拨号用户服务 )是一种在网络接入设备和认证服务器之间承载认证、授权、计费(AAA)和配置信息的协议。RADIUS 协议是在认证、授权、计费方面应用最为广泛的协议之一具有以下特点: 客户端/服务器结构 采用共享密钥保证网络传输安全性 良好的可扩展性 认证机制灵活 RADIUS 协议承载于UDP 之上官方指定端口号为认证授权端口1812,计费端口1813。RADIUS 协议通过ISO标准定义,详情见《RFC2865》、《RFC2866》相关文档。 Portal技术 Portal在英语中是入口的意思。Portal认证通常也称为Web认证,一般将Portal认证网站称为门户网站。 在传统的组网环境中,用户只要能接入局域网设备,就可以访问网络中的设备或资源,为加强网络资源的安全控制和运营管理,很多情况下需要对用户的访问进行控制。例如,在一些公共场合、小区或公司的网络接入点,提供接入服务的供应商希望只允许付费的合法用户接入,所以供应商为每个用户提供一个接入网络的账号和密码。另外,一些企业会提供一些内部关键资源给外部用户访问,并且希望经过有效认证的用户才可以 访问这些资源。 现有的802.1x和PPPoE等访问控制方式,都需要客户端的配合,并且只能在接入层对用户的访问进行控制。 Portal认证技术则提供一种灵活的访问控制方式,不需要安装客户端,就可以在接入层以及需要保护的关键数据入口处实施访问控制。

继续阅读

硬派认证计费产品技术白皮书

1. 概述 宽带网络是国家最为重要的基础设施之一,随着技术的进步,全社会信息化进程的加快,宽带不仅已经发展成为信息化的基础性资源,其影响早已超越了传统信息通信行业,成为社会政治、经济、文化、金融等活动的基石,对全社会生产率的提高,创造新的就业机会等具有重大影响。在宽带城市建设的推动下,近年来,我国互联网基础设施建设取得了长足的发展。作为网络运营的基础核心应用,认证计费系统发挥着越来越重要的作用。 硬派计费产品致力于解决宽带驻地网业务,WLAN无线认证计费的运营管理。支持标准 RADIUS 协议(RFC 2865, RFC 2866等),同时具备厂商私有协议扩展能力,轻松支持主流设备。高度模块化设计,提供开放API接口, 支持分布式,并发能力高。不仅为运营商提供高效率的运营,同时也为运营商不断创造更大的价值。 2. 术语和缩写词 RADIUS: Remote Authentication Dial In User Service (远程用户拨号认证系统) BAS: Broadband Access Server (宽带接入服务器) AAA Authentication Authorization Accouting (认证 授权 计费) 3. 产品架构 系统采用高度模块化的实现,基于标准化协议构建,同时提供良好的扩展性。 高效的RADIUS引擎,PORTAL引擎提供了强大的性能支持,以及协议适配扩展能力。 支持国内外主流设备快速对接,华为,中兴,思科,爱立信,阿尔卡特,H3C,以及各种流行的软路由,支持灵活的协议扩展。 丰富的业务接口,除了自有业务支撑系统,同时面向第三方提供完善的功能接口,提供标准的基于(WebService/Rest)的 API 接口,支持第三方OSS对接,支持LDAP,支持第三方管理应用对接。 4. 网络拓扑 如图所示 可同时支持通过PPPOE,WebPortal,802.1x三种方式接入网络。 PPPOE用户向BRAS发起PPPOE认证,BRAS与RADIUS服务器进行认证交互,实现PPPOE接入目的,适用于小区驻地网接入场景。 针对商业场景,校园可支持无线方式接入,可支持通过WebPortal方式实现认证计费,BRAS/AC设备在用户首次接入时推送认证门户,用户通过输入验证信息发送给BRAS/AC设备,BRAS/AC与RADIUS服务器进行认证交互,实现无线认证接入目的。 5. 用户界面 管理界面采用B/S结构,管理员通过浏览器和正确的密码登录监控,用于监控RADIUS认证包、记帐包等以及消息跟踪,并提供RADIUS协议相关的实时数据管理。 营业界面采用B/S结构,营业员通过浏览器和正确的密码登录监控,用于营业受理及相关查询和操作功能,如开户、销户、续费、停复机、营业受理查询等。 用户自助服务采用多种接入方式,包括WEB界面访问,可自适应PC与移动设备,以及第三方应用集成比如微信公众号,微信小程序等。 6. 软件接口 认证采用标准RADIUS协议,终端通过PPPOE向BAS发起拨号请求,BAS通过标准RADIUS协议向RADIUS Server发起认证请求。针对扩展的业务需求通过RADIUS协议扩展属性进行扩展开发。支持华为厂家设备扩展属性。 第三方业务接口,提供HTTP协议以及WEBService协议支持。 7. 接入设备支持 支持国内外主流设备快速对接,华为,中兴,思科,爱立信,阿尔卡特,H3C,以及各种流行的软路由,支持灵活的协议扩展

继续阅读

RADIUS 标准网络拓扑

如图所示 可同时支持通过PPPOE,WebPortal,802.1x三种方式接入网络。 PPPOE用户向BRAS发起PPPOE认证,BRAS与RADIUS服务器进行认证交互,实现PPPOE接入目的,适用于小区驻地网接入场景。 针对商业场景,校园可支持无线方式接入,可支持通过WebPortal方式实现认证计费,BRAS/AC设备在用户首次接入时推送认证门户,用户通过输入验证信息发送给BRAS/AC设备,BRAS/AC与RADIUS服务器进行认证交互,实现无线认证接入目的。

继续阅读

ToughRADIUS 快速开始

快速开始 系统环境依赖 操作系统:支持跨平台部署 (Linux,Windows,MacOS等) java 版本: 1.8或更高 数据库服务器:MySQL/MariaDB 数据库初始化 数据库的安装配置请自行完成,首先确保你的数据库服务器已经运行 运行创建数据库脚本以及创建专用用户 create database toughradius DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL ON toughradius.* TO raduser@'127.0.0.1' IDENTIFIED BY 'radpwd' WITH GRANT OPTION;FLUSH PRIVILEGES; 创建数据库表 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); 插入测试数据

继续阅读

GNU LESSER GENERAL PUBLIC LICENSE

GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright © 2007 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. Additional Definitions.

继续阅读

RADIUS GUI 测试工具

RadiusTester是一个radius gui 测试客户端, 来自于 ToughRADIUS 开发者内部的开源测试工具, 基于Python开发,简单易用。 提供单项测试,随机测试,还提供了性能压力测试。 项目地址 https://github.com/jamiesun/RadiusTester

继续阅读