2013-12-17 15:20:12 sfhjy 阅读数 1118
  • Windows Server 2012 R2 网络应用(全套)

    全套视频共6章,主要涉及到的是和网络应用有关的技术知识点,内容包括Windows Server 2012 R2路由器的设置、网络地址转换(NAT)、虚拟专用网(VPN)、DirectAccess直接访问内部网络资源、RADIUS服务器的配置、网络访问保护(NAP)。通过学习本视频教程,可以做到对操作系统专业性技术提高。

    6779 人正在学习 去看看 深博

    linux 下编译radius时出现libtool: Command not found

   用命令查看libtool存在已经存在了,为什么会报错呢?后面认真分析了下,  原因是系统的ibtool版本不同,解决办法是重新生成makefie,执行如下命令:


  make distclean

  ./configure  --prefis=/usr/local/radius  

 make

2019-10-11 21:40:42 chaootis1 阅读数 106
  • Windows Server 2012 R2 网络应用(全套)

    全套视频共6章,主要涉及到的是和网络应用有关的技术知识点,内容包括Windows Server 2012 R2路由器的设置、网络地址转换(NAT)、虚拟专用网(VPN)、DirectAccess直接访问内部网络资源、RADIUS服务器的配置、网络访问保护(NAP)。通过学习本视频教程,可以做到对操作系统专业性技术提高。

    6779 人正在学习 去看看 深博

在kali上安装radius服务器时发现网上的教程大多比较老而且并不适用于Debian系统,本文简单介绍radius服务器在Debian上的安装及测试(不适用于非Debian Linux)

  1. 安装freeradius
    apt-get install freeradius
  2. 配置用户名和密码
    vim /etc/freeradius/3.0/mods-config/files/authorize
    在文件开头写上用户名和密码
    bob Cleartext-Password := "12345678"
    也可以取消掉文件里用户名和密码的注释
  3. 配置需要和radius进行通信的client的ip地址以及密码
    vim /etc/freeradius/3.0/clients.conf
    文件里会有包含本地ipv4地址和ipv6地址的client定义
    client localhost_ipv6{
    	ipaddr = ::1
    	secret = testing123	
    }
    
    我们可以在这下面定义自己的client
    	client test{
    	ipaddr = 192.168.1.1
    	secret = testing
    }
    
    这里的test只是一个名字而已,没什么特别含义。
  4. 进行服务器的测试
    首先以调试模式运行radius服务器,这样可以看到一些交互信息
    freeradius -X这里的X是大写
    然后执行
    radtest bob 12345678 127.0.0.1 0 testing123
    这里的bob和12345678是前面设置的用户名和密码,
    127.0.0.1是radius服务器所在的地址,这里我们是在本地测试。
    0是固定写法
    testing123是radius与client进行通信的秘钥。由于是在本地测试, 与radius进行通信的client的ip就是127.0.0.1,所以我们的秘钥要填由radius默认定义的client “localhost”中所设定的秘钥,当然也可以自己在后面新建一个client然后ipaddr写上本机的ip,secret设置成自己的秘钥。
  5. 经过前面的几步,应该能从freeradius中看到一些log,可以根据log进行一些调整。比如我在进行测试的时候,radtest使用的不是本地ip 127.0.0.1访问radius而是接口的ip 192.168.1.1,那么此时我的测试命令应该为 radtest bob 12345678 127.0.0.1 0 testing
    testing为之前定义的client “test”的秘钥,它的ipaddr就能匹配192.168.1.1。
2007-04-22 10:18:00 liang13664759 阅读数 13114
  • Windows Server 2012 R2 网络应用(全套)

    全套视频共6章,主要涉及到的是和网络应用有关的技术知识点,内容包括Windows Server 2012 R2路由器的设置、网络地址转换(NAT)、虚拟专用网(VPN)、DirectAccess直接访问内部网络资源、RADIUS服务器的配置、网络访问保护(NAP)。通过学习本视频教程,可以做到对操作系统专业性技术提高。

    6779 人正在学习 去看看 深博

              最近一直在做freedius.net,freeradius这个东西原本是在linux下的radius服务器。

              可是呢现在要用到windows下,虽然有windows的版本——freeradius.net。但是很可笑的是.net竟然没有连接mssql的驱动,在google上找了很久,没有解决的办法。于是想把radius服务器放linux下的,然后联另一台windows下的mssql服务器。在网上看别人写的东西和freeradius的帮助文档比总是迷迷糊糊的。所以学习一下radius协议,然后看能不能改下freeradius。可是看了一些从万方上找来的学位论文,我晕,这是学位论文嘛!写的牛头不对马嘴,而且还有错别字。让人看了雾头雾水的。唉,有些话就不多说了。大家都明白。

              Radius是Remote Authentication Dial In User Service的简称,即远程验证拨入用户服务。 当用户想要通过某个网络(如电话网)与NAS(网络接入服务器)建立连接从而获得访问其他网络的权利时,NAS可以选择在NAS上进行本地认证计费,或把用户信息传递给RADIUS服务器,由Radius进行认证计费;RADIUS 协议规定了NAS与RADIUS 服务器之间如何传递用户信息和记账信息;RADIUS服务器负责接收用户的连接请求,完成验证,并把传递服务给用户所需的配置信息返回给NAS。

             AAA是验证,授权和记账(Authentication,Authorization,and Accounting)的简称。它 是运行于NAS上的客户端程序。它提供了一个用来对验证,授权和记账这三种安全功能进行配置的一致的框架。AAA的配置实际上是对网络安全的一种管理。这里的网络安全主要指访问控制。

              验证(Authentication): 验证用户是否可以获得访问权。可以选择使用RADIUS协议。
              授权(Authorization) : 授权用户可以使用哪些务。                                                                                                   

             记账(Accounting) : 记录用户使用网络资源的情况。

              由此可见,可以用radius协议来实现AAA。NAS(Network Access Server网络接入服务器简称) 。当用想要对访问某个网络是,就像NAS发送接入请求。当NAS接受到接入请求是NAS就像radius服务器转发用户的接入请求,然后radius返回消息包。NAS根据这个消息包判断用户是否可以接入。如果允许接入,用户就像NAS发送计费请求,NAS再向radius转发请求,然后用户就可以访问网络资源。计费由radius完成。  这样以来,验证,授权,记账,全由radius完成。

              RADIUS 协议常用的认证端口号为1812或1645,计费端口号为1813或1646。RADIUS通过建立一个唯一的用户数据库,存储用户名,用户的密码来进行验证; 存储传递给用户的服务类型以及相应的配置信息来完成授权。

              RADIUS服务器采用的是C/S模式。对于radius来说NAS就是客户端。radius可以做为另一个radius服务器或者另一种认证服务器的地客户端。

              用户<-->NAS<-->RADIUS 业务流程说明。

           

              1、用户拨入后(1),所拨入的设备(比如NAS)将拨入用户的用户的信息(比如用户名、口令、所占用的端口等等)打包向RADIUS服务器发送(2)。
2、如果该用户是一个合法的用户,那么Radius告诉NAS该用户可以上网,同时传回该用户的配置参数(3);否则,Radius反馈NAS该用户非法的信息(3)。
3、如果该用户合法,MAS就根据从RADIUS服务器传回的配置参数配置用户(4)。如果用户非法,NAS反馈给用户出错信息并断开该用户连接(4)。
4、如果用户可以访问网络,RADIUS客户要向RADIUS服务器发送一个记费请求包表明对该用户已经开始记费(5),RADIUS服务器收到并成功记录该请求包后要给予响应(6)。
5、当用户断开连接时(连接也可以由接入服务器断开)(7),RADIUS客户向RADIUS服务器发送一个记费停止请求包,其中包含用户上网所使用网络资源的统计信息(上网时长、进/出的字节/包数等)(8),RADIUS服务器收到并成功记录该请求包后要给予响应(9)。

         网络安全
RADIUS协议的加密是使用MD5加密算法进行的,在RADIUS的客户端(NAS)和服务器端(Radius Server)保存了一个密钥(key),RADIUS协议利用这个密钥使用MD5算法对RADIUS中的数据进行加密处理。密钥不会在网络上传送。RADIUS的加密主要体现在两方面:报签名和口令加密。

        包签名:主要由于验证所接受的包是否是合法的用户和服务器发来的。这样可以在一定程度上防止黑的冒充服务器发包。
在RADIUS包中,有16字节的验证字(authenticator)用于对包进行签名,收到RADIUS包的一方要查看该签名的正确性。如果包的签名不正确,那么该包将被丢弃,对包进行签名时使用的也是MD5算法(利用密钥),没有密钥的人是不能构造出该签名的。
包的签名与加密详细说明如下:
包的签名指的是RADIUS包中16字节的Authenticator,我们称其为"验证字"。
认证请求包
RequestAuth=Authenticator,认证请求包的验证字是一个不可预测的16字节随机数。这个随机数将用于口令的加密。
认证响应包
ResponseAuth = MD5(Code+ID+Length+Authenticator+Attributes+Key)。
记费请求包
RequestAcct = MD5(Code+ID+Length+16ZeroOctets+Attributes+Key)。
记费响应包
ResponseAcct = MD5(Code+ID+Length+RequestAcct+Attributes+Key)。

         口令加密:
在认证用户时,用户的口令在NAS和Radius Server之间不会以明文方式传送,而是使用了MD5算法对口令进行加密。没有密钥的人是无法正确加密口令的,也无法正确地对加密过的口令进行解密。
口令的加密:
称共享密钥(key)为Key;16字节的认证请求验证字(Authenticator)为Auth;将口令(Password)分割成16字节一段(最后一段不足16字节时用0补齐),为p1、p2等;加密后的口令块为c(1)、c(2)等。下面运算中b1、b2为中间值:
b1 = MD5(Key + Auth) c(1) = p1 xor b1
b2 = MD5(Key + c(1)) c(2) = p2 xor b2
…… ……
bi = MD5(Key+ c(i-1)) c(i) = pi xor bi
那么加密后的口令为c(1)+c(2)+...+c(i)。

上面是协议规定的算法,也有的RADIUS服务器为了实现起来简单,修改了上述的算法,具体的讲,b1的算法同上,但bi=b2=b1(i>=1),其他运算不变。当用户的口令长度不超过16字节时,两种算法的结果是一样的。

            口令加密与口令验证过程

            当用户上网时,NAS决定对用户采用何种验证方法。下面分别在本地验证和Radius验证两种情况下介绍用户与NAS之间的PAP和CHAP验证方式。

            1)NAS本地认证
             PAP 验证(Password Authentication Protocol:密码验证协议):用户以明文的形式把用户名和密码传递给NAS。 NAS根据用户名在NAS端查找本地数据库,如果存在相同的用户名和密码表明验证通过,否则表明验证未通过。
           CHAP 验证(Challenge Handshake Authentication Protocol:挑战握手验证协议): 当用户请求上网时,服务器产生一个16字节的随机码(challenge)给用户(同时还有一个ID号,本地路由器的 host name)。用户端得到这个包后使用自己独用的设备或软件对传来的各域进行加密,生成一个Secret Password传给NAS。NAS根据用户名查找自己本地的数据库,得到和用户端进行加密所用的一样的密码,然后根据原来的16字节的随机码进行加密,将其结果与Secret Password作比较,如果相同表明验证通过,如果不相同表明验证失败。
Secret Password = MD5(Chap ID + Password + challenge)

               2)Radius认证
              如果用户配置了RADIUS验证而不是本地验证,过程略有不同。
              PAP验证:用户以明文的形式把用户名和他的密码传递给NAS,NAS把用户名和加密过的密码放到验证请求包的相应属性中传递给RADIUS服务器。RADIUS服务器对NAS上传的帐号进行验证并返回结果来决定是否允许用户上网。
                  Secret password =Password XOR MD5(Challenge + Key)
                 ( Challenge就是Radius报文中的Authenticator)

              CHAP验证:当用户请求上网时,NAS产生一个16字节的随机码给用户(同时还有一个ID号,本地路由器的 host name)。用户端得到这个包后使用自己独有的设备或软件对传来的各域进行加密,生成一个Secret Password传给NAS。NAS把传回来的CHAP ID和Secret Password分别作为用户名和密码,并把原来的16字节随机码传给RADIUS服务器。RADIUS根据用户名在服务器端查找数据库,得到和用户端进行加密所用的一样的密码,然后根据传来的16字节的随机码进行加密,将其结果与传来的Password作比较,如果相同表明验证通过,如果不相同表明验证失败。

                Secret password = MD5(Chap ID + Password + challenge)

               标准Radius协议包结构

              

               Code:包类型;1字节;指示RADIUS包的类型。
1Access- request 认证请求
2 Access- accept 认证响应
3 Access- reject 认证拒绝
4 Accounting-request 计费请求
5 Accounting-response 计费响应
*11 Access-challenge 认证挑战
Identifier: 包标识;1字节,取值范围为0 ~255;用于匹配请求包和响应包,同一组请求包和响应包的Identifier应相同。
Length: 包长度;2字节;整个包中所有域的长度。
Authenticator:16 字节长;用于验证RADIUS服务器传回来的请求以及密码隐藏算法上。
该验证字分为两种:
1、请求验证字---Request Authenticator
用在请求报文中,必须为全局唯一的随机值。

2、响应验证字---Response Authenticator
用在响应报文中,用于鉴别响应报文的合法性。
响应验证字=MD5(Code+ID+Length+请求验证字+Attributes+Key)

Attributes:属性


Attributes:属性
Type
1 User-Name
2 User-Password
3 CHAP-Password
4 NAS-IP-Address
5 NAS-Port
6 Service-Type
7 Framed-Protocol
8 Framed-IP-Address
9 Framed-IP-Netmask
10 Framed-Routing
11 Filter-Id
12 Framed-MTU
13 Framed-Compression
14 Login-IP-Host
15 Login-Service
16 Login-TCP-Port
17 (unassigned)
18 Reply-Message
19 Callback-Number
20 Callback-Id
21 (unassigned)

22 Framed-Route
23 Framed-IPX-Network
24 State
25 Class
26 Vendor-Specific
27 Session-Timeout
28 Idle-Timeout
29 Termination-Action
30 Called-Station-Id
31 Calling-Station-Id
32 NAS-Identifier
33 Proxy-State
34 Login-LAT-Service
35 Login-LAT-Node
36 Login-LAT-Group
37 Framed-AppleTalk-Link
38 Framed-AppleTalk-Network
39 Framed-AppleTalk-Zone
40 Acct-Status-Type
41 Acct-Delay-Time
42 Acct-Input-Octets
43 Acct-Output-Octets
44 Acct-Session-Id
45 Acct-Authentic
46 Acct-Session-Time
47 Acct-Input-Packets
48 Acct-Output-Packets
49 Acct-Terminate-Cause
50 Acct-Multi-Session-Id
51 Acct-Link-Count

60 CHAP-Challenge
61 NAS-Port-Type
62 Port-Limit
63 Login-LAT-Port

Length
属性长度。
Value
属性值。

    

2017-11-22 14:33:00 weixin_33941350 阅读数 26
  • Windows Server 2012 R2 网络应用(全套)

    全套视频共6章,主要涉及到的是和网络应用有关的技术知识点,内容包括Windows Server 2012 R2路由器的设置、网络地址转换(NAT)、虚拟专用网(VPN)、DirectAccess直接访问内部网络资源、RADIUS服务器的配置、网络访问保护(NAP)。通过学习本视频教程,可以做到对操作系统专业性技术提高。

    6779 人正在学习 去看看 深博

本文译自 iSystemAdmin 的 《What is RADIUS Server and best free RADIUS Server for Linux》。

看到radius这个词,我们都会想到圆心到圆周之间的长度(半径)。然而在计算机领域,它代表一个为连接到网络的计算机集中提供认证、授权和计费(Authentication, Authorization,  Accounting  AAA)的网络协议。然而,事情不像你听上去的那么难。大多数时候,通讯不会用到所有AAA的功能,可能只会用到计费也可能只有认证。RADIUS会帮你完成所有这些事情,下面我们就开始介绍。

历史

RADUIS是远程用户拨号认证系统(Remote Authentication Dial IUser Service)。它由Livingston Enterprises公司在1991年首先开发。开发的初衷是满足验证和记账需要的一个通讯协议,后来Internet工程任务组(IETF)将其定为标准。ISP(信息服务提供商)和企业鉴于该协议有着广泛的支持以及具备可以同时管理Internet、内部网络无线网络和集成邮件服务的特性纷纷采用。这些网络可能需要与调制解调器数字用户环路(DSL)、无线接入点VPN网络端口,、web服务器等等[2]配合使用

 

什么是RADIUS服务器

通常RADIOUS服务器作为UNIX守护进程或是微软Windows的系统服务在后台运行。RADIUS服务通常有3个称作AAA的功能(这也就是为什么RADIUS服务器通常也被叫做AAA服务器):

1. 认证验证用户或设备的身份与可使用的网络服务

2. 授权依据认证结果开放网络服务给用户或设备,也可作为后续验证的前提条件

3. 记账记录用户对各种网络服务的用量,并提供给计费系统

 

工作原理:

RADIUS是一个工作在应用层的客户端/服务器协议,采用UDP协议传输。在通信行业,远程访问服务器Remote Access Server RAS)、虚拟专用网络Virtual Private Network VPN)服务器、基于端口验证的网络交换机网络接入服务器(NAS)都是控制网络接入的网关,它们都有一个RADIUS客户端模块可以和RADIUS服务器通信。起初,RADIUS协议采用1645和1646端口分别用作认证和记账,RADIUS服务器上运行的授权子进程不需要通讯端口。后来Internet号码分配机构(Internet Assigned Numbers Authority  IANA)为RADIUS协议分配了1812和1813端口,成为了现在RADIUS服务器的默认端口。

 

RADIUS安全性:

从安全的角度讲RADIUS并不是一个安全性很好的协议。在服务器与网络设备(RADIUS客户端)之间,除了用户或设备的密码其它都使用明文通 信。在RADIUS服务器和客户端之间使用共享密钥会使得密码变得难以辨认。但是这仍然不是保护用户凭据的安全方法。所以,一般推荐在Radius服务器 和客户端之间使用隧道技术(例如IPSec或VPN)提供保护。这个问题正在得到解决,其中RadSec声称已经解决了这个问题。

译注:

隧道技术(Tunneling):网络隧道技术指的是利用一种网络协议来传输另一种网络协议,它主要利用网络隧道协议来实现这种功能。

RadSec:是一种基于TCP和TLS传输RADIUS数据的协议。

 

Linux RADIUS服务器:

起初,RADIUS服务器是为UNIX及其变种开发的。后来,也有一些Windows版本出现。由于Livingstone是RADIUS协议的主 要开发者,他们开发了第一个Livingstone RADIUS服务器,它是所有后来RADIUS服务器的鼻祖。Cistron RADIUS服务器是第二个RADIUS服务器,直到现在仍然被许多RADIUS部署方案采用。原本cistron的设计是采用所有的文本文件存储 RADIUS词典和用户数据库。Cistron的两个主要变种是XT-RADIUS和ICRADIUS。

XT-RADIUS增加了很多脚本扩展cistron的功能。ICRADIUS直接使用MySQL作为数据词典、NAS和用户数据库,这使得系统管理变得更加轻松。如今,XT-RADIUS和ICRADIUS几乎和它们父辈cistron一样几乎销声匿迹。

Cistron的开发者Miquel van Smoorenburg后来决定编写一个模块化程度更高且免费的RADIUS服务器。他将其命名为FreeRADIUS,目前FreeRADIUS已经成为事实上的RADIUS 部署标准。

 

FreeRADIUS

FreeRADIUS是一个模块化、高性能的免费RADIUS套件,遵循GNU通用许可协议开发和发布。FreeRADIUS套件包含了一个 RADIUS服务器,一个遵循BSD协议的RADIUS客户端函数库,一个PAM函数库,一个Apache模块以及众多的RADIUS相关工具和开发函数 库。

FreeRADIUS是目前最受欢迎的开源RADIUS服务器并且在世界上被广泛部署。它是许多商业RADIUS产品和服务的基础,像是嵌入式系 统,提供网络访问控制的RADIUS工具以及WiMAX。它满足了很多财富500强公司、电信公司以及Tier 1网络信息服务提供商的AAA需求,

译注:Tier 1网络:是指不向任何其它网络购买互联网穿透(IP Transit)服务或付费连接的网络。

正如之前提到的,FreeRADIUS是模块化的,服务器核心模块包支持LDAP、MySQL、PostgreSQL、 Oracle和许多其他数据库。它支持所有流行的EAP验证类型,包括PEAP(受保护的EAP)和EAP-TTLS(隧道TLS身份验证协议)。它还包 含了超过100家厂家的数据字典,确保了对NAS设备的广泛支持。

译注:EAP(Extended Authentication Protocol 扩展协议认证):对ppp 协议中chap认证的扩展,比chap更有灵活性和更高的安全性,支持MD5、智能卡、可读卡等。

如果你需要安装和使用RADIUS,可以直接选择FreeRADIUS,下载链接是http://www.freeradius.org。希望不久之后我们的博客可以涉及更多Linux FreeRADIUS安装和配置的内容。









本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/1007921,如需转载请自行联系原作者
没有更多推荐了,返回首页