本文译自 iSystemAdmin 的 《What is RADIUS Server and best free RADIUS Server for Linux》。
看到radius这个词,我们都会想到圆心到圆周之间的长度(半径)。然而在计算机领域,它代表一个为连接到网络的计算机集中提供认证、授权和计费(Authentication, Authorization, Accounting AAA)的网络协议。然而,事情不像你听上去的那么难。大多数时候,通讯不会用到所有AAA的功能,可能只会用到计费也可能只有认证。RADIUS会帮你完成所有这些事情,下面我们就开始介绍。
历史
RADUIS是远程用户拨号认证系统(Remote Authentication Dial In User 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安装和配置的内容。
英文原文 iSystemAdmin 编译:伯乐