安装和修改freeradius,增加PPPOE服务器帐号连接数限制

本文介绍了如何通过安装和修改freeradius来限制PPPOE服务器的帐号连接数,以防止一个帐号多人同时使用。通过在数据库中添加计数器字段,并在freeradius的accounting_start_query和Accounting_stop_query中执行更新SQL语句来实现并发控制。文章详细讲述了升级freeradius到1.1版本、修改源码以执行额外的SQL指令以及配置sql.conf的过程。
摘要由CSDN通过智能技术生成

(昨天没有来得及记录下来,现在回到家里再补写,代码5.7过完假后再补贴)

  由于我在linux下架设的pppoe服务器没有办法防止一个帐号多人使用,使用pppoe-server+freeradiusd,似乎只要帐号和密码一核对通过,那么就可以上网了,一个帐号可以n个人使用。虽然我之前用修改sql.conf中验证和postAuth的办法,在验证地方加上了mac地址认证,但是mac地址在系统下可以被修改,(包括我自己的机器,TPLink的网卡,右键选择属性,很容易就可以找到修改mac地址的地方了,连注册表都不用动,郁闷),几个人把自己的mac地址修改成一样的话,照样可以同时上。

         前一段时间本来打算自己写pppd的插件,抛开pppd自带的radius.so和freeradius不用的,但是发现如果在pppd的plugin里自行进行mysql的连接和查询,那么每个pppoe连接建立时会调用一个plugin的进程,那么如果我在plugin中与mysql建立全程的连接,那么有1000人在线的时候,mysql会有1000个连接,但是如果分别在plugin中的验证、流量统计过程里连接mysql的话,由于流量统计的时候是定时的,那么与mysql建立连接与释放连接会很频繁,(据我理解,建立连接比查询耗费的时间更多),那么也会造成问题。最终的解决办法似乎也只能效法freeradius的方式,在mysql主机上建立类似freeradius的服务器程序,在plugin中发查询和校验包给它,由它建立几个永久的mysql连接进行查询。当中涉及到包协议的设定,密码的编码和解码,比较复杂࿰

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值