找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: ccxxzz

[其它] 自己做的认证管理系统

  [复制链接]
发表于 2012-1-1 13:20:06 | 显示全部楼层
要是能支持802.1x就好啦
routeros
回复

使用道具 举报

发表于 2012-4-5 21:18:05 | 显示全部楼层
下了。。使用一下..
routeros
回复

使用道具 举报

发表于 2012-4-5 22:01:55 | 显示全部楼层
看上去很不错。辛苦了
routeros
回复

使用道具 举报

 楼主| 发表于 2012-4-14 23:30:07 | 显示全部楼层
本帖最后由 ccxxzz 于 2012-4-15 00:59 编辑

上来就做下广告算了:
V1.0.0   基于FREEBS拨号认证,RADIUS核心运行于WINDOWS系统上;
V1.0.1   改动核心,合适于ROS认证,支持CHAP协议;
V1.0.2   增加ACCESS数据管理功能,增加在线踢人,保证帐户唯一特性;
V1.0.3   增加软件的模糊认证功能,支持模糊帐号认证;
V1.0.4   增加帐户分类型走不同通道,修改数据为MYSQL;
V1.0.4+  增加HOTSPOT、VPN功能;
V1.0.5   修复MYSQL中的读取功能,加强过滤功能,更新LOG日志功能;
V1.0.5+  修复MYSQL中的读取、更新数据BUG,更新LOG日志功能;
V1.0.5++ 更新读写MYSQL中的语句,加速MYSQL读写更新过程;
V1.0.6   精简与MYSQL中读取,加入正版授权验证;
V1.0.7   加强WEB管理功能,加入充值卡服务
V1.0.8   精简MYSQL数据
V1.0.9   更新认证大小写识别错误
V1.1.0   数据更新为MSSQL,更改数据读写模式[数据支持ACCESS MYSQL MSSQL甚至ORACLE]
         普通双核心笔记本,界面模式秒发为80以上,进入任务栏,秒发150以上
V1.1.1   软件日志更新为滚动文本,稳定正式认证秒发认证150以上
V1.1.2   更新客户PPPOE或VPN拨号客户端,增加客户日志,MSCHAP V1转为正式认证
V1.1.2+  增加BAS下派速度功能,服从于地址池的父域,可选用或不选用由开关设置
V1.1.3   增加ROS认证许可,可选用或不选用由开关设置,防止非法数据认证干扰
V1.1.3.1 增加ROS公告连接
V1.1.3.2 增加WEB的ROS公告管理接口
V1.1.4.0 增加对硬件BAS不支持协议的管理、数据完善
V1.1.5.0 增加对硬件BAS不支持协议的管理、数据完善
V1.1.6.0 排错处理、复杂网络环境支撑、更加完美
V1.1.7.0 排错处理、复杂网络环境支撑、更加完美
V2.0.0   添加数据连接窗体,自动连接MSSQL
V2.0.1   将固定地址下派从指定速度下派分离出来,速度->固定地址模式
V2.0.2   更新在线维持,与BAS设备中保持一致性
V2.0.3   更新在线维持,设置更多可下派或不下派修改
V2.0.4   增加长期运行程序的自我瞬间修复代码,保证程序长期稳定有效运行
累计版本:29


核心参数,和ROS百分之百兼容模式的配对!请看设置:
REM ====================================================
REM 软件中的所有参数设置请对应ROS参数设置、MSSQL参数对应
REM ROS地址池对应,请在核心软件中的系统-宽带地址池中设置
REM 此需WEB运营管理,请看修改目录下的 WEB.CONFIG对应参数
REM ====================================================

[COMMOM]
LimitNas=0
REM ===========================
REM 是否启用NAS接入地址许可控制
REM 如果为0,任意IP地址ROS能接入
REM ===========================

NasPort=3799
REM =============================
REM 这对应ROS中Radius的income端口
REM =============================


NasSecret=xnzy
REM ===============================
REM 这对应ROS中Radius设置的通信密码
REM ===============================

AccountingInterim=0
REM  ========================================================
REM  AccountingInterim 在线用户中途实时记帐统计报文刷新时间。
REM  在线刷新,可使核心软件中的在线列表用户和ROS里面的用户符合
REM  这个值建议设置为3分钟以上为合适,且与该数据的单位为秒。
REM  此值决定后,请不要修改,如需要修改,请配合重新启动ROS。
REM  当此置为0,表示不使用此功能。
REM  =======================================================


KillUserMode=0
REM  =========================================
REM  PPPOE模式,请选择 0;HOTSPOT模式,请选择 1
REM  HOTSPOT模式下,分配的IP由DHCP的热点池决定
REM  如热点需DHCP指定IP地址,需要使用多重认证。
REM  =========================================


InvalidUser=
InvalidIp0=10.10.1.11
InvalidIp1=10.10.1.100
REM ================================================
REM 无效用户的NAS地址池;如果为空,则无效用户不能拨号
REM 必须写明模糊认证的地址范围,请对应ROS中模糊地址池
REM 软件规定模糊用户4小时后断网,并且不参与正式在线
REM ================================================
InvalidUserRate=500k/640k 512k/660k 500k/640k 10

SoonUser=
REM ================================================
REM 即将过期用户,即在 3天后过期的客户拨号可转地址池
REM 如果不启用,请将此地址池数据设置为空
REM ================================================
SoonUserRate=500k/2000k 512k/2020k 500k/2000k 10


Pooldistribute=0
REM ==================================================
REM 是否对正式认证启用地址池(ip-pool)的下派,建议启用。
REM 启用时,请对ROS设置至少三个地址池:过期地址池、即
REM 将到期地址池、正常的多种地址池。
REM 不启用,此值为0。对于某些ROS中地址池设置混乱的可用
REM ==================================================


UserName=
REM ==================================================
REM 为加速过滤非法帐户,禁止非前缀的帐号登陆认证,加速
REM ‖xt‖wta‖,则帐号前缀非xt或wta的,系统直接给拒绝
REM 如果不采用,请将其值设置为空
REM ==================================================


BlackMAC=0
REM ================================================
REM 是否启用黑名单,即将非法MAC列入不能登录的限制中
REM ================================================


[DataServer]
Host=localhost
REM =================================================
REM 设置核心软件和MSSQL数据库IP连接,大型认证可独立出   
REM 默认状态是localhost,如需要大型验证,可修改此地址
REM localhost 127.0.0.1
REM =================================================

Root=sa
REM ================================================
REM 设置核心软件与MSSQL 数据库的连接的连接管理用户名
REM ================================================

PassWord=sa
REM ==============================================
REM 设置核心软件与 MSSQL数据库的连接的连接管理密码
REM ==============================================

REM ===============================================
REM 以上三项目设置,注意所有MSSQL的开放端口为:1433
REM 如SQL2005以上是动态端口,请修改一下,否则连接错
REM ===============================================


[Server]
StableServer=1
REM ============================
REM 软件稳定检测自我修复设置参数
REM 如果不采用,请将其值设置为0
REM ============================

Syslog=0
REM ================================
REM 设置系统是否启用支持客户访问记录
REM 此项设置将详细保留用户的访问日志
REM 如果不采用,请将其值设置为0
REM ================================

Logg=0
REM ================================
REM 设置系统是否启用支持客户登陆记录
REM 如果设置了Syslog,没有必要启动这
REM 如果不采用,请将其值设置为0
REM ================================

Controlrate=1
REM ================================
REM 设置系统是否启用客户机器速度下派
REM 如果不采用,请将其值设置为0
REM ================================

Controlpass=
REM =================================
REM 客户端拨号加密传输字符,为空不加密
REM 如设置,则需要特殊拨号软件如星空类
REM 如果不采用,请将其值设置为空
REM =================================

OrderUserPass=0
REM =====================================
REM 生成帐户和密码,第一次登陆生效并捆绑
REM 如果启用,需预先生成成帐户和密码卡片
REM =====================================

核心认证代码:DELPHI
WEB管理代码:C#
建议数据库平台:MSSQL2000、MSSQL2005 2008
建议操作系统运行平台:WINDOWS2003 SERVER
建议硬件配置:双核 CPU/512M RAM/40G HD
routeros
回复

使用道具 举报

 楼主| 发表于 2012-4-14 23:55:22 | 显示全部楼层
本帖最后由 ccxxzz 于 2012-4-15 00:37 编辑

能实现哪些功能:
1、PPPOE认证 实现
2、WEB认证 实现
3、指派固定IP   实现
4、任意帐户上网 实现[模糊地址池实现]
5、时间段控制上网 实现
6、用户自助服务 实现
7、指定用户上网区域、VLAN捆绑、MAC捆绑 实现
8、用户公告 实现
9、实时踢人 实现
10、充值卡 实现
11、指定帐户、密码、速度和上网有效期的刮刮卡 实现
12、直接核心GUI操作软件 实现
13、数据备份功能 实现
14、核心长期瞬间恢复 实现
15、ROS日志功能  实现
16、用户上网记录日志 实现
17、远程开单打印 实现
18、远程WEB管理 实现
19、短信服务 可按要求,你随便要求,我随便实现
20、802。1X认证 实现
21、数据与认证分离 实现
22、任意网络布局认证 实现
23、WIN2003系统自动恢复,数据装非C盘,系统自动恢复系统!你来实现
24、黑名单用户MAC 实现
25、中心数据库、各分布点认证 实现
26、WEB代码开源 实现
27、核心软件控制AP接口公开 实现
28、加密客户端拨号  实现
29、硬件BAS设备接入认证 实现
30、其实可行性认证、多重认证 想实现,就能实现
不写了,太多了!太多了!一切为了实用,一切为了维护、一切为了方便,不错的二选!
写这么个小软件,完全按照客户要求,完善了上面的这些功能!你的需求是我前进的动力!
routeros
回复

使用道具 举报

 楼主| 发表于 2012-4-15 00:28:03 | 显示全部楼层
本帖最后由 ccxxzz 于 2012-4-15 00:28 编辑

V2.0.4绝对是你不二的选择!
routeros
回复

使用道具 举报

发表于 2012-4-15 11:57:42 | 显示全部楼层
routeros
回复

使用道具 举报

发表于 2012-6-11 23:02:41 | 显示全部楼层
过来支持!
routeros
回复

使用道具 举报

发表于 2012-6-12 08:15:22 | 显示全部楼层
基本结构还是不错的,就是界面有待加强
routeros
回复

使用道具 举报

发表于 2012-6-12 17:12:54 | 显示全部楼层
辛苦了·········
routeros
回复

使用道具 举报

发表于 2012-6-14 16:55:04 | 显示全部楼层
感觉功能强大了,但是操作之类的也繁琐了,鱼和熊掌,到底该怎么取舍?
routeros
回复

使用道具 举报

发表于 2012-6-15 20:55:24 | 显示全部楼层
神作~~很好,顶一下!!!!
routeros
回复

使用道具 举报

 楼主| 发表于 2012-6-25 01:05:41 | 显示全部楼层
本帖最后由 ccxxzz 于 2012-6-25 01:24 编辑

关于特殊拨号软件的控制模式,未使用特殊拨号软件的或者是路由拨号的用户,直接转降速处理;
给出路由拨号用户或者正常拨号用户的 提醒警告:

WEB中C#代码

using System;
using System.Configuration;
using System.Data;
//using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//using System.Xml.Linq;
using xnzyradius.sql;

public partial class userinfor : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            userip.Text = GetClientIp();
            AdoSql readuserbyip = new AdoSql();
            DataTable readuserbyipt = readuserbyip.readuserbyip(GetClientIp());
            try
            {
                username.Text = readuserbyipt.Rows[0]["user_name"].ToString();
                userpass.Text = readuserbyipt.Rows[0]["user_password"].ToString();
            }
            catch           
           {
                //
            }

        }
    }

    public static string GetClientIp() //得到客户的IP地址
    {
        string l_ret = string.Empty;
        if (!string.IsNullOrEmpty(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_VIA"]))
            l_ret = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]);

        if (string.IsNullOrEmpty(l_ret))
            l_ret = Convert.ToString(System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
        return l_ret;
    }

}

网页代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="userinfor.aspx.cs" Inherits="userinfor" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>用户警告信息</title>
    <style type="text/css">
        .style1
        {
            width: 100%;
        }
        .style2
        {
            color: #CC3300;
            font-weight: bold;
        }
    </style>
</head>
<body style="text-align: center">
    <form id="form1" runat="server">
    <div>
   
        <table class="style1" style="width: 400px">
            <tr>
                <td align="right" class="style2" colspan="2" style="text-align: center" height="31">
                    <u>用户警告信息</u></td>
            </tr>
            <tr>
                <td align="right" width="200">
                    用户IP:</td>
                <td align="left" width="190">
                    <aspabel ID="userip" runat="server" ForeColor="#CC3300"></aspabel>
                </td>
            </tr>
            <tr>
                <td align="right" width="200">
                    用户帐户:</td>
                <td align="left" width="190">
                    <aspabel ID="username" runat="server" ForeColor="#CC3300"></asp:Label>
                </td>
            </tr>
            <tr>
                <td align="right" width="200">
                    用户密码:</td>
                <td align="left" width="190">
                    <asp:Label ID="userpass" runat="server" ForeColor="#CC3300"></asp:Label>
                </td>
            </tr>
            <tr>
                <td colspan="2">
                    请使用我们的专用拨号软件:<b><a href="pppoeclient.exe">下载</a></b></td>
            </tr>
        </table>
   
    </div>
    </form>
</body>
</html>

如何用C#WEB中判断用户是否在某一个IP段的范围,可使用我写的判断函数:
    private static int ipaddressnumber(string userip)
    {
        //string []  tmpip = userip.Split(".");
        string[] tmpip = userip.Split(new char[] { '.' });
        return Convert.ToInt32(tmpip[0]) * 256 * 256 * 256 + Convert.ToInt32(tmpip[1]) * 256 * 256 + Convert.ToInt32(tmpip[2]) * 256 + Convert.ToInt32(tmpip[3]);
    }

在核心RADIUS里面我是这么处理的:

InvalidRouterUser=2mpool
InvalidRouterUserRate=00655360001310720065536000131072
(我这里使用的是MA5200专业BRAS设备的接入认证;控制速度是CLASSS属性!)

                         1.jpg


在代码里面这么用DELPHI写:
if (Controlpass<>'')and(KillUserMode=0)and(acountado.FieldByName('user_router_if').AsBoolean) then
             userjiami:=Controlpass+acountado.FieldByName('user_password').AsString
   else
           userjiami:=acountado.FieldByName('user_password').AsString;
考虑到PPPOE模式不能加入特殊字符密码加密,只支持PPPOE特殊密码加密;
为了让正常拨号的也能访问网络:
       if  _Password(acountado.FieldByName('user_password').AsString)and(not (acountado.FieldByName('user_stat').AsBoolean))  then
        begin  //路由用户,但是密码正确的
                          userframeip:='';
                                              userpool:=InvalidRouterUser;//路由用户或者正常拨号用户,没有使用专用拨号,直接给出降速 地址池  和 速度
                                              userrate:=InvalidRouterUserRate;
                                              usersessiontime:=FormatFloat('#',(acountado.FieldByName('user_enddate').AsDateTime -now)*86400);  //正常用户的session设置
                          userInterim:=inttostr(AccountingInterim);
                                              if (rad_attr.UserName)<>'QQ17384771' then logoitem.Items.Add('限速认证:'+format('%20s',[rad_attr.UserName])+' 路由用户!'+FormatDateTime(' 时间: mm月dd日hh:mm',now))
}        

实际验证:



  
1.jpg


那么把 正常拨号(路由拨号)  、特殊拨号分开;给出不用特殊拨号的用户给出安全提示,并给出警告信息;使用特殊拨号的用户正常进行各种网络交互,把用户对于上特殊拨号软件的不满,降低到最低限度,也可让ISP利益的最大化;你要上路由,我就给你降速处理!
                          
1.jpg
routeros
回复

使用道具 举报

发表于 2012-6-25 10:24:26 | 显示全部楼层
楼主!写个客户端!配合radius防共享!
routeros
回复

使用道具 举报

 楼主| 发表于 2012-7-18 16:37:17 | 显示全部楼层
xp甚至是2003下,不想GHOST版本装IIS,就给你这个最简单的IIS,支持.NET网站!

xp下面的IIS服务器.rar (247.49 KB, 下载次数: 6)
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-23 07:16 , Processed in 0.071512 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表