应用TekRADIUS 搭建认证平台
2020-01-15河北唐山市教育局电化教育馆崔冬耿宗玉
河北唐山市教育局电化教育馆 崔冬 耿宗玉
随着信息化建设不断推进以及信息技术的广泛应用,信息网络的快速普及,政府机关、企事业单位都在不断增加基于互联网的业务系统,如各类网上申报系统、网上评审系统、网络查询系统、协同办公系统等。这些业务系统一般都有用户管理和身份认证要求,根据登录系统的用户身份给予相应的访问授权。
为了工作的便捷与安全,搭建一个统一的身份认证平台是必要的。
统一身份认证平台构建实验拓扑结构
为了让大家更完整、清晰地了解统一身份认证平台构建过程,笔者用VMware Workstation 15 Pro 搭建了如图1 所示测试环境。
图1 测试环境拓扑结构
在这个测试环境中需要数据库服务器、证书服务器、Radius 服务器、PPPoE 服务器各一台,PPPoE 拨号终端两台。其中数据库服务器采用的是SQL Server 2008,Radius 服务器采用的是kaplansoft TekRADIUS,证书服务器采用的是kaplansoft TekCERT,三台服务器均在同一台虚拟机上,虚拟机操作系统采用的是Windows Server 2008;PPPoE 服务器是采用RouteOS 软路由操作系统搭建的服务器,单独占一台虚拟机;另需两台用作PPPoE 客户端的虚拟机,其作用是检验Radius 认证效果,两台虚拟机均采用Windows XP 操作系统。
用TekRADIUS 搭建统一身份认证平台
TekRADIUS 是一个基于Windows 平台的Radius服务器,支持RFC 2865 和RFC 2866,支持和其他设备或软件平台进行共享的认证,如本例中的拨号服务器,Microsoft 的ISA Server,思科、华为、3Com、H3C、HP 等网络设备的认证,支持Windows域用户身份验证,支持PAP、CHAP、MS-CHAP 1、MS-CHAP 2、EAP-MD5、EAP-MS-CHAP 2和摘要式等身份验证方式。
说 明:TekRADIUS 仅支持微软的SQL Server 服务器,如果没有SQL Server 服务器,需要先安装部署SQL Server。如果不想使用SQL Server 数据库,可从官网下载TekRADIUS LT,这是一款配有轻型数据库SQLite 数据库的版本。
1.安装部署TekRADIUS
TekRADIUS 是一款完全免费的Radius 服务器软件,可从kaplansoft 官网直接下载,目前最新版本是“5.4.4.33”,下载地址“https://www.kaplansoft.com/tekRadius/release/TekRADIUS.zip”。
下载完成后先解压此压缩包。
TekRADIUS 5.4 需Microsoft .NET Framework 4.6 运行时环境,如果当前操作操作系统没有安装.NET Framework 4.6,双击TekRAD IUS 安装文件后会自动下载安装.NET Framework 4.6。
如果现有系统已安装.NET Framework 4.6,会直接打开TekRADIUS 安装向导窗口。
完成.NET Framework 4.6 后自动打开TekRADIUS安装向导窗口。TekRADIUS的安装过程较为简单,出现TekRADIUS 安装向导窗口后,按照向导安装即可。
2.TekRADIUS 基础配置
(1)安装好TekRADIUS后,运行桌面上的TekRADIUS Manager。
注意:此时如果出现“从服务器返回一个参照”的错误,说明当前用户运行TekRADIUS Manager 的权限有限,此时以管理员身份运行TekRADIUS Manager 即可。如果是Windows Server 2008 或Windows 7 操作系统,右击桌面上的TekRADIUS Manager,在右键菜单中选择“属性”。出现属性窗口后,单击“兼容性”选项卡,在“兼容性”选项卡下勾选“以管理员身份运行此程序”,此时在再运行TekRADIUS Manager,就不会出现上述错误了。
(2)打开“TekRADIUS Manager 5.4”窗口后,单击“Settings”(设置)选项卡,在“Settings”选项卡下单击“DB Connection”(数据库连接)选项卡。
(3)出现“SQL Server Connection”页面后,在“SQL Server”文本框中输入SQL Server 服务器的地址,分别在“Username”和“Password”文本框中输入登录SQL Server 的用户名和密码,设置好数据库连接后单击“Test Connection”测试连接,此时在窗口底部出现“Connect successful but database does not exists”字样,表示连接成功,如图2 所示。
图2 设置窗口
(4)单击“Database”选项卡,进入“Database”选项卡页面后单击“Create Database”按钮创建数据库。
如果数据库创建成功,此时在“Create Database”栏目中可以观察到Database Size(数据库大小)和“Log Size”(日志大小)不再显示为没有初始化,而是实际空间占有情况。
(5)单击“Create Tables”按钮创建表。
说明:上面创建的表主要包括“Users Table”(用户表)、“Accounting Table”(记账表)、“Groups Table”(用户组表)和“Sessions Table”(会话表)等四个表。除这四个表外,TekRADIUS 会在使用过程中创建其他各种表,如配置共享加密信息的Radius 客户端(应用程序)使用的“Clients”(客户端)表。如果对SQL Server熟悉,可以直接查看这些表的内容。
(6)单击“Service Para meters”选项卡,在该选项卡下可以修改服务参数,例如,默认的认证端口是1812,记账端口是1813,默认的身份验证协议是“PEAP-EAP-MSCHAP-v2”,也就是微软的质询握手身份验证协议 2。
在服务器配置参数中有一项很重要的参数“TLS Port|Server Certificate”,是Radius 服务器证书。
如果没有为服务器配置证书,此时显示的是“No certificate found”(未找到证书)。如果没有数字证书,用户访问某些经Radius认证的应用程序时,可能会报“证书不可用”之类的错误。
3.TekRADIUS 证书生成
X.509 标准是ITU-T 设计的PKI 标准,在X.509 标准中,使用大量的篇幅来定义证书和CRL 的数据格式。
目前X.509 证书已广泛应用在包括TLS/SSL 在内的互联网协议里,也用在诸如电子签名服务等非在线应用场景里。X.509 证书里含有公钥、身份信息和签名信息(可以是证书签发机构CA 的签名,也可以是自签名)。
对于一份经由可信的证书签发机构签名或者可以通过其它方式验证的证书,证书的拥有者就可以用证书及相应的私钥来创建安全的通信。
TekCERT 是一款基于Windows 桌面的X.509 证书生成工具,和TekRADIUS 一样,也是kaplansoft 提供的免费工具,官网下载地址:“https://www.kaplansoft.com/tekcert/release/TekCERT.zip”。
TekCERT 的安装过程很简单,先解压下载的压缩包,双击解压后的安装程序,按向导提示一步步安装即可。
安装好TekCERT 以后,运行TekCERT,打开TekCERT窗口后,默认页面就是“Certificate Generation”(生成证书)选项卡页面。在页面左上部"issued to"(颁发给)栏目中输入证书拥有者的名称、组织单位、组织和国家或者证书持有人的姓名、服务处所等信息。
在右侧“Certificate Store”下拉列表中选择证书的存储位置,有“本地机器”和“当前用户”两个选项,在本例中,选择的是“Local Machine”(本地计算机),勾选“Self Signed”(自签名证书)复选框,如果创建的是CA 证书,可以勾选“CA”复选框。
配置好X.509 数字证书后,单击“Generate Certificate”即可生成证书。
如果证书成功生成,在页面右下部证书列表框中会显示生成的证书,选中新生成的证书,单击绿色的“+”按钮,即可信任所选择的证书。
如果单位已有CA 证书,单击(导入)按钮可将单位的证书导入到证书列表中。单击(导出)可导出选中的证书。
给Radius 服务器配置好X.509 数字证书后,进入TekRADIUS Manager 的“Service Parameters”页面,此时“TLS Port|Server Certificate”参数的证书就变成了前面生成的证书。
4.TekRADIUS 用户管理
TekRADIUS 支持用户分组权限管理。例如,对于学校的在线教学平台而言,可以将用户分为学生、教师、家长、企业员工和一般的社会学习者等几类用户,也可以按组织架构进行分类。
在本例中,创建了一个名为“testgroup”的用户组和一个该用户组下为“test”的用户,创建过程如下:
(1)打开“TekRADIUS Manager”窗口后,单击“Groups”选项卡,在窗口左下侧文本框中输入新建组的名称,本例为“testgroup”,设置好用户组名称后,单击右侧绿色的“+”按钮,将新建的用户组添加到用户组列表中。
(2)添加好用户组后,单击“Users”选项卡,在窗口左下侧文本框中输入新用户的名称,本例为“test”,设置好用户名后,在用户组下拉列表中选择刚建的用户组“testgroup”,单击右侧绿色的“+”按钮,将新建的用户添加到用户列表中。
(3)接下来设置用户属性,TekRADIUS 用户具有开放的属性设置,可以根据需要添加或删除用户属性,如限速、限时、限流量、限终端数量、MAC 地址绑定等,都可以设置用户属性达到上述目标。
在TekRADIUS 用户属性列表中,有三个字段,分别是“Attribute”“Type”和“Value”。“Attribute”是Radius 属性名;“Type”是Radius 属性的类型,TekRAD IUS 支持“check”“Success-Reply”“Failure-Replay”“Informational”等类型;“Vlaue”是属性值。
有关用户属性的设置,后面还要做相应的尝试,这里通过设置用户密码这个用户必须具有的属性来说明用户属性设置办法。
图3 用户设置窗口
(4)在窗口左侧用户选中需要设置密码的用户,在窗口最右下侧属性类型下拉菜单中选择“Check”,在属性名称下拉列表中选择“User-Password”,在其旁边的密码文本框中为新用户指定密码,设置好用户密码后,单击绿色的“+”按钮即可将“User-Password”(用户密码)添加到Radius 属性列表中如图3 所示。
5.添加Radius 客户端
前面已经介绍过,Radius客户端和Radius 服务器之间的事务是通过使用共享密钥进行身份验证的。Radius客户端和Radius 服务器之间怎么建立的联系?如何共享的密钥?
下面将PPPoE 服务器配置为Radius 客户端,以此说明Radius 客户端和Radius服务器之间是如何共享密钥的。
打开“TekRADIUS Manag er”窗口后,单击“Clients”选项卡。在窗口下端“NAS”文本框输入Radius 客户端的IP 地址。在本例中,Radius客户端是PPPoE 服务器,IP地址是“192.168.0.1”。
在“Secret”文本框中设置共享密钥,在“Vendor”下拉列表中选择Radius 客户端的供应商名称,按实际填写即可。
图4 配置客户端信息
如果不清楚Radius 客户端是哪家供应商,使用默认的“ietf”即可。配置好Radius 客户端信息后,单击窗口右下角绿色“+”按钮,将Radius 客户端添加到“Clients”列表中,如图4 所示。
注意:此处设置的共享密钥是Radius 客户端和Radius服务器之间的事务往来所要使用的密钥,共享密钥在密码加密以及数据包的鉴别码部分都参与了运算,即使Radius 数据包被截获,但不知道共享密钥,很难通过破解用户的密码来伪造数据。共享密钥应采用合适的长度,只要适当增加密码的复杂度,采用暴力破解(穷举密码的破解方式)所花费的时间将大大增加。
说明:ietf 是国际互联网工程任务组的简称,其主要任务是负责互联网相关技术标准的研发和制定,是国际互联网业界具有一定权威的网络相关技术研究团体。
6.管理Radius 服务
在初次配置Radius 服务器时,可能会遇到各种错误,Radius 服务没有正常启动、配置Radius 后没有重新启动Radius 服务等都是主要的错误来源。
因此,遇到错误或重新配置Radius 后,可以先停止Radius 服务,再启动Radius服务。
打开“TekRADIUS Manage r”窗口后,单击“Service”菜单下的“Stop”子菜单项可停止Radius 服务,单击“Start”子菜单项可启动Radius 服务。