Code Monkey home page Code Monkey logo

toughradius's Introduction

Welcome to the TOUGHRADIUS project!

 _____   _____   _   _   _____   _   _   _____        ___   _____   _   _   _   _____  
|_   _| /  _  \ | | | | /  ___| | | | | |  _  \      /   | |  _  \ | | | | | | /  ___/ 
  | |   | | | | | | | | | |     | |_| | | |_| |     / /| | | | | | | | | | | | | |___  
  | |   | | | | | | | | | |  _  |  _  | |  _  /    / / | | | | | | | | | | | | \___  \ 
  | |   | |_| | | |_| | | |_| | | | | | | | \ \   / /  | | | |_| | | | | |_| |  ___| | 
  |_|   \_____/ \_____/ \_____/ |_| |_| |_|  \_\ /_/   |_| |_____/ |_| \_____/ /_____/ 

TOUGHRADIUS

TOUGHRADIUS is committed to providing comprehensive and superior network management solutions. The core technology is based on RADIUS and can extend the system functions to support various network protocols, such as TR069. TOUGHRADIUS not only provides a user-friendly system interface, but also powerful data analysis and management features such as real-time network monitoring, usage reports and automatic billing. TOUGHRADIUS is dedicated to providing secure, reliable and efficient network management services, enabling them to realize more efficient network operations.

TOUGHRADIUS uses advanced Golang technology to develop the system core, providing excellent system performance and easy deployment experience.

Quick Install

quick Start

  • Use curl
sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/talkincode/toughradius/main/installer.sh)"
  • Use wget
sudo bash -c "$(wget https://raw.githubusercontent.com/talkincode/toughradius/main/installer.sh -O -)"

Q&A AiBot

ToughRadius provides an AI-based technical service bot that we hope can help you solve some technical problems. image

Q&A AiBot Link

System structure

architecture

System features

TR069 ACS

TR069 ACS can provide real-time monitoring and maintenance of CPE devices in the network to ensure their normal operation. It supports multiple data models and allows custom Settings to accommodate different types of CPE devices. In addition, TR069 ACS also supports secure encryption to protect data privacy and security. Therefore, TR069 ACS not only improves the efficiency of network management, but also ensures network security.

  • Configure or get device configuration parameters and operating status
  • Provide vendor device configuration download
  • Provide device factory reset configuration download
  • Provide upgrade firmware download

Radius Server

TOUGHRADIUS is a RADIUS server that supports the RADIUS protocol and the RADIUS over TLS (RadSec) protocol.

Standard RADIUS features

  • Authentication message

  • Authentication PAP authentication method

  • Authentication CHAP authentication method

  • Authentication MS-CHAPv2 authentication method

  • Authorization message

    After receiving the BAS Authentication request message, the RADIUS Server encapsulates the user authorization information according to the user information resources, and authorizes the user bandwidth limit, maximum duration, IP and other information to the BAS through the Authentication response message.

  • Accounting-On message

  • Accounting-Off message

  • Accounting-Start message

  • Accounting-Interium-Update message

  • Accounting-Stop message

  • Deliver the SessionTimeout attribute

  • Deliver the AcctInterimInterval attribute

  • Deliver the FramedPool attribute

  • Deliver the FramedIPAddress attribute

  • Deliver attributes of the customized vendor,such as Huawei, ZTE, Cisco,Mikrotik etc.

freeRADIUS integration

freeradius-toughradius

TOUGHRADIUS integrates with the FreeRADIUS API interface, extending its already comprehensive authentication capabilities to provide a more robust solution. Integration with the FreeRADIUS API enables seamless integration with existing network infrastructures, providing a wider range of authentication options to meet unique requirements. Whether you need to support 802.1X, Wi-Fi, VPNs or other network access protocols, TOUGHRADIUS has you covered. With advanced authentication capabilities and integration with FreeRADIUS, users can enjoy a secure, reliable and efficient network management experience.

Northbound Interface

  • Provide a unified API for various third-party management systems, based on the HTTPS Json protocol.
  • Provide basic equipment information and status data query API, and data maintenance API.
  • Provide various policy management APIs, such as firewall rules, routing tables, etc.

Links

sponsors

Thanks to JetBrains for supporting this project!

JetBrains Logo (Main) logo

Contribute

We welcome contributions of any kind, including but not limited to issues, pull requests, documentation, examples, etc.

toughradius's People

Contributors

dependabot[bot] avatar jamiesun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

toughradius's Issues

ToughRADIUS docker快速部署

安装docker

centos6

sudo yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
$ sudo yum install docker-io
$ sudo service docker start

centos7

$ sudo yum install docker
$ sudo service docker start

Ubuntu

安装最新版本的Ubuntu包(可能不是最新的docker版本包):
$ sudo apt-get update
$ sudo apt-get install docker.io
$ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

获取镜像

$ docker pull index.alauda.cn/toughstruct/toughradius

创建容器

$ docker run -d --name trserver --net host index.alauda.cn/toughstruct/toughradius:latest

附注:

关于trserver这个容器名称,可以修改为你想要的名称,比如myradius等,注意各个操作环节保持名称一致

Import user template

应提供一个用户导入模板方便用户的导入,鉴于使用了用户和账号双层的id,应对各层id的密码和导入时将选择的套餐类型予以说明,避免将用户导入至错误的套餐内。
若已经在rm上有用户,可否提供一个将rm中缴费历史导入进来的方法。

0.9.3版本首页“流量统计”为0

你好,
软件及系统版本信息如下:

  • toughradius: 0.9.3
  • OS: CentOS 7

首页“流量统计”显示一直是0,但是在“上网日志查询”里面可以看到“上传/下载”流量,请问这两者相关么?
我是和m0n0wall结合测试的,如果“流量统计”不是“上传/下载”的流量,那么估计是别的原因(比如portal不支持)。

流量计费支持

支持按流量计费,类型分为流量单价和打包流量

支持用户订购流量套餐

通知触发URL功能无法支持GET等方式的变量设置(0.9.5)

比如某个web service可以支持如下方式发送短信:

 http://web.service.host/xxxx/Send?Mobile=手机号&Content=发送内容&ID=xxxx

在TR里面这样设置:

http://web.service.host/xxxx/Send?Mobile={mobile}&Content={account} will expire on {expire}&ID=xxxx

测试无法正常工作,从log中看到URL替换变量后,进行url.encode转换,其中的“&”符号也变成“%26”,即URL最后变成了类似这样:

 http://web.service.host/xxxx/Send?Mobile=手机号%26Content=发送内容%26ID=xxxx

web server回应500错误:

500 Internal Server Error

如果将最后url.encode后的内容中两处%26改为&,再手动测试访问,就可以正常工作。

绑定VLAN没有生效

老大,计费策略设置了绑定VLAN,用户也是绑定VLAN及MAC的,拨号后,查看VLAN1、2还是0/0,手动修改数据库中的VLAN_ID/VLAN_ID2为QINQ的两个VLAN,无论怎么改,还是可以拨号,请教如何可以绑定QINQ的VLAN呢?谢谢!

实名制认证模块

在系统启用实名制认证模块后,操作员中不具备非实名制操作的操作员必须验证手机号或者身份证号才可以建立用户信息。
当用户信息需要更改(移机、过户)时,必须验证身份证号或者手机号(用户信息中必须已经有身份证号)才可以继续下一步操作。

Got error message when ToughRADIUS server had a network issue

I installed 0.9.1 on CentOS 6.6 in vmware.

When I change the VMware NAT(port forwarding) settings, Admin Web page will fail to work, it shows error messages as below:

"出错了!

Server Internal error Can't reconnect until invalid transaction is rolled back (original cause: InvalidRequestError: Can't reconnect until invalid transaction is rolled back) u'SELECT slc_param.param_value AS slc_param_param_value \nFROM slc_param \nWHERE slc_param.param_name = %s' [immutabledict({})]"

I have to press Ctrl+C stop "toughctl --admin", and then start it again.
As I know, when change the (VMware) NAT settings, the network connection of guest OS will disconnect for a little moment, that is the cause of the failed error.

unable to install via pip version v1.1.5

pip install https://github.com/talkincode/ToughRADIUS/archive/v1.1.5.tar.gz    

.....
error: can't copy 'toughradius/console/static/css/skins': doesn't exist or not a regular file

0.9.8的Windows版本admin log路径设置无效

我测试了下0.9.8的windows版本(在Windows 2008 R2上),发现radiusd、admin、customer的log默认都是写到了logs/radiusd.log。

实际上后两者的log按照默认设置应该分别写到logs/admin.log、logs/customer.log才对。

新建的操作员更改密码后导致admin账号密码被改

版本:1.0.0
使用新建操作员登入,点击页面顶部“修改密码”,自己密码并没有改变,修改的反而是admin账号的密码。

我觉得这个修改密码功能应该是修改当前(操作员)登入账号的密码才对。

账单(发票/收据),工单的打印模块

支持自定义抬头,自定义样式,可以引用用户姓名,联系电话,装机地址等等这些字段。
要支持给用户开具机打票据。如果有工单管理就更好了。

期望增加设置侦听IP的功能

希望配置文件中可以自动以“管理控制台”或“自助服务”的侦听IP (Listening address),这样如果server有多个网卡,可以限制只在特定网卡上提供服务。

0.9.9.2版本普通操作员登入后打开“营业管理”及“运维管理”子页面报错

0.9.8版本测试没有问题,升级到0.9.9.2后,admin登入测试没有异常,如果用普通操作员登入就无法正常打开“营业管理”和“运维管理”下面的页面。

假设普通操作员名称为:zhang_san,打开相关页面报错信息如下:

出错了!
Server Internal error (ProgrammingError) (1146, "Table 'toughradius.slc_operator_nodes' doesn't exist") 'SELECT slc_node.id AS slc_node_id, slc_node.node_name AS slc_node_node_name, slc_node.node_desc AS slc_node_node_desc \nFROM slc_node, slc_operator_nodes \nWHERE slc_node.node_name = slc_operator_nodes.node_name AND slc_operator_nodes.operator_name = %s' ('zhang_san',)

自助服务系统无法访问(0.9.3)

打开提示:Critical error while processing request: /login
ToughRADIUS: 0.9.3
CentOS Linux 7 release 7.0.1406

在customer.log文件中看到如下log内容:

2015-02-27 00:58:51+0800 [HTTPChannel,1,10.129.93.140] user login timeout
2015-02-27 00:58:51+0800 [-] "10.129.93.140" - - [26/Feb/2015:16:58:50 +0000] "GET / HTTP/1.1" 303 - "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC EA 2; MS-RTC LM 8)"
2015-02-27 00:58:51+0800 [wsgi] Traceback (most recent call last):
File "/usr/bin/bottle.py", line 862, in _handle
return route.call(*_args)
File "/usr/bin/bottle.py", line 1732, in wrapper
rv = callback(_a, **ka)
TypeError: member_login_get() takes exactly 1 argument (0 given)
2015-02-27 00:58:51+0800 [wsgi]

Critical error while processing request: /login


2015-02-27 00:58:51+0800 [-] "10.129.93.140" - - [26/Feb/2015:16:58:50 +0000] "GET /login HTTP/1.1" 500 56 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC EA 2; MS-RTC LM 8)"

希望添加对更多验证方式的支持

我测试了用pfsense的captive portal功能和目前的toughradius整合验证,除了PAP验证方式外,其余验证方式不支持。

pfsense 2.2(最新版)目前支持的验证方式如下:

  • PAP
  • CHAP_MD5
  • MSCHAPv1
  • MSCHAPv2

而PAP是明文的,一般不建议用,所以希望Toughradius可以支持更多验证方式。

充值卡模块

账号卡:可以特定资费实现开户。

余额卡:可实现时长资费账号充值。

流量卡:可实现流量资费充值。

PPTP与ToughRDIUS对接后无法使用MPPE

当PPTP启动MPPE时,PPTP服务器提示

Dec 9 07:36:27 rdqd1 pppd[17910]: Unsupported protocol 0xc7 received
Dec 9 07:36:27 rdqd1 pppd[17910]: Unsupported protocol 0x11 received
Dec 9 07:36:27 rdqd1 pppd[17910]: Unsupported protocol 0xcb received
Dec 9 07:36:28 rdqd1 pppd[17910]: Unsupported protocol 'AppleTalk SmartBuffered' (0x3b) received
Dec 9 07:36:28 rdqd1 pppd[17910]: Unsupported protocol 0xc88 received
Dec 9 07:36:28 rdqd1 pppd[17910]: Unsupported protocol 0x7021 received

关闭MPPE则正常,我需要启用MPPE,请问应该如何配置?

IKEv1(CISCO IPSEC)EAP-XAUTH支持吗

将strongswan和toughradius对接,iPhone用Cisco IPsec VPN模式链接服务器,toughradius报以下错误

Radius Packet::AccessReject
host:172.17.42.1:56924
id:61
code:3
authenticator:9b0d3732fc95e1dc097fae1bd0972890
Attributes: 
Reply-Message: user password not match

OpenVPN使用同一个账号密码验证是成功的,但是Cisco IPsec则不行。
是因为toughradius暂时不支持eap验证吗?

Email通知方式不支持免验证方式(0.9.5)

我测试了发送E-mail通知的功能,如果SMTP server无需验证,此时无法发送mail,log中看到如下相关信息:

 Error: unable to send email No suitable authentication method found.

在“系统参数管理”界面也无法将SMTP账号和密码设置为空,删掉默认账号([email protected])、密码(service2015)后保存仍然会显示有;

在某些环境或某些公司内,会有mail relay server针对某些IP或某些客户端设置无须验证即可发送mail。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.