最佳免费Linux RADIUS服务器推荐
jopen 12年前
<blockquote> <p>本文译自 <a href="/misc/goto?guid=4958334623411914052" rel="follow" target="_blank">iSystemAdmin</a> 的 《<a href="/misc/goto?guid=4958346557732630412" rel="follow" target="_blank">What is RADIUS Server and best free RADIUS Server for Linux</a>》。</p> </blockquote> <p> 看到 radius 这个词,我们都会想到圆心到圆周之间的长度(半径)。然而在计算机领域,它代表一个为连接到网络的计算机集中提供认证、授权和计费(Authentication, Authorization, Accounting AAA)的网络协议。然而,事情不像你听上去的那么难。大多数时候,通讯不会用到所有 AAA 的功能,可能只会用到计费也可能只有认证。RADIUS 会帮你完成所有这些事情,下面我们就开始介绍。</p> <p> <strong>历史</strong></p> <p> RADUIS 是远程用户拨号认证系统(Remote AuthenticationDial In User Service)。它由 Livingston Enterprises 公司在 1991 年首先开发。开发的初衷是满足验证和记账需要的一个通讯协议,后来 <a href="/misc/goto?guid=4958346558544588531" rel="nofollow" target="_blank">Internet 工程任务组</a>(IETF)将其定为标准。<a href="/misc/goto?guid=4958346559337699741" rel="nofollow" target="_blank">ISP</a>(信息服务提供商)和企业鉴于该协议有着广泛的支持以及具备可以同时管理 <a href="/misc/goto?guid=4958346560140413373" rel="nofollow" target="_blank">Internet</a>、内部<a href="/misc/goto?guid=4958346560934633646" rel="nofollow" target="_blank">网络</a>、<a href="/misc/goto?guid=4958346561729505793" rel="nofollow" target="_blank">无线网络</a>和集成邮件服务的特性纷纷采用。这些网络可能需要与<a title="Modem" href="/misc/goto?guid=4958346562530897693" rel="nofollow" target="_blank">调制解调器</a>、<a href="/misc/goto?guid=4958346563324179522" rel="nofollow" target="_blank">数字用户环路</a>(DSL)、<a href="/misc/goto?guid=4958346564117719852" rel="nofollow" target="_blank">无线接入点</a>、<a title="V*N" href="/misc/goto?guid=4958346564916776749" rel="nofollow" target="_blank">V*N</a>、<a href="/misc/goto?guid=4958346565715760040" rel="nofollow" target="_blank">网络端口</a>,、<a href="/misc/goto?guid=4958346566519466928" rel="nofollow" target="_blank">web 服务器</a>等等<a href="/misc/goto?guid=4958346567314926667" rel="nofollow" target="_blank">[2]</a>配合使用<sup>。</sup></p> <p> <strong>什么是 RADIUS 服务器</strong></p> <p> 通常 RADIOUS 服务器作为 UNIX 守护进程或是微软 Windows 的系统服务在后台运行。RADIUS 服务通常有 3 个称作 AAA 的功能(这也就是为什么 RADIUS 服务器通常也被叫做 AAA 服务器):</p> <p> 1. 认证:验证用户或设备的身份与可使用的网络服务</p> <p> 2. 授权:依据认证结果开放网络服务给用户或设备,也可作为后续验证的前提条件</p> <p> 3. 记账:记录用户对各种网络服务的用量,并提供给计费系统</p> <p> <strong>工作原理:</strong></p> <p> RADIUS 是一个工作在<a href="/misc/goto?guid=4958346568113137114" rel="nofollow" target="_blank">应用层</a>的客户端/服务器协议,采用 <a href="/misc/goto?guid=4958346568911390497" rel="nofollow" target="_blank">UDP</a> 协议传输。在通信行业,<a href="/misc/goto?guid=4958346569713984797" rel="nofollow" target="_blank">远程访问服务器</a>(<strong>R</strong>emote <strong>A</strong>ccess <strong>S</strong>erver RAS)、<a href="/misc/goto?guid=4958346570517870718" rel="nofollow" target="_blank">虚拟专用网络</a>(<strong>V</strong>irtual <strong>P</strong>rivate <strong>N</strong>etwork V*N)服务器、基于端口验证的<a href="/misc/goto?guid=4958346571310847234" rel="nofollow" target="_blank">网络交换机</a>和<a href="/misc/goto?guid=4958346572113111870" rel="nofollow" target="_blank">网络接入服务器</a>(NAS)都是控制网络接入的网关,它们都有一个 RADIUS 客户端模块可以和 RADIUS 服务器通信。起初,RADIUS 协议采用 1645 和 1646 端口分别用作认证和记账,RADIUS 服务器上运行的授权子进程不需要通讯端口。后来 Internet 号码分配机构(<strong>I</strong>nternet <strong>A</strong>ssigned <strong>N</strong>umbers <strong>A</strong>uthority IANA)为 RADIUS 协议分配了 1812 和 1813 端口,成为了现在 RADIUS 服务器的默认端口。</p> <p> <strong>RADIUS 安全性:</strong></p> <p> 从安全的角度讲 RADIUS 并不是一个安全性很好的协议。在服务器与网络设备(RADIUS 客户端)之间,除了用户或设备的密码其它都使用明文通信。在 RADIUS 服务器和客户端之间使用共享密钥会使得密码变得难以辨认。但是这仍然不是保护用户凭据的安全方法。所以,一般推荐在 Radius 服务器和客户端之间使用隧道技术(例如 IPSec 或 V*N)提供保护。这个问题正在得到解决,其中<strong>RadSec</strong>声称已经解决了这个问题。</p> <p> 译注:</p> <p> 隧道技术(Tunneling):网络隧道技术指的是利用一种网络协议来传输另一种网络协议,它主要利用网络隧道协议来实现这种功能。</p> <p> RadSec:是一种基于 TCP 和 TLS 传输 RADIUS 数据的协议。</p> <p> <strong>Linux RADIUS 服务器:</strong></p> <p> 起初,RADIUS 服务器是为 UNIX 及其变种开发的。后来,也有一些 Windows 版本出现。由于 Livingstone 是 RADIUS 协议的主要开发者,他们开发了第一个 Livingstone RADIUS 服务器,它是所有后来 RADIUS 服务器的鼻祖。Cistron RADIUS 服务器是第二个 RADIUS 服务器,直到现在仍然被许多 RADIUS 部署方案采用。原本 cistron 的设计是采用所有的文本文件存储 RADIUS 词典和用户数据库。Cistron 的两个主要变种是 XT-RADIUS 和 ICRADIUS。</p> <p> XT-RADIUS 增加了很多脚本扩展 cistron 的功能。ICRADIUS 直接使用 MySQL 作为数据词典、NAS 和用户数据库,这使得系统管理变得更加轻松。如今,XT-RADIUS 和 ICRADIUS 几乎和它们父辈 cistron 一样几乎销声匿迹。</p> <p> Cistron 的开发者 Miquel van Smoorenburg 后来决定编写一个模块化程度更高且免费的 RADIUS 服务器。他将其命名为 FreeRADIUS,目前 FreeRADIUS 已经成为事实上的 RADIUS 部署标准。</p> <p> <strong>FreeRADIUS</strong></p> <p> FreeRADIUS 是一个模块化、高性能的免费 RADIUS 套件,遵循 GNU 通用许可协议开发和发布。FreeRADIUS 套件包含了一个 RADIUS 服务器,一个遵循 BSD 协议的 RADIUS 客户端函数库,一个 PAM 函数库,一个 Apache 模块以及众多的 RADIUS 相关工具和开发函数库。</p> <p> FreeRADIUS 是目前最受欢迎的开源 RADIUS 服务器并且在世界上被广泛部署。它是许多商业 RADIUS 产品和服务的基础,像是嵌入式系统,提供网络访问控制的 RADIUS 工具以及 WiMAX。它满足了很多财富 500 强公司、电信公司以及 Tier 1 网络信息服务提供商的 AAA 需求,</p> <p> 译注:Tier 1 网络:是指不向任何其它网络购买互联网穿透(IP Transit)服务或付费连接的网络。</p> <p> 正如之前提到的,FreeRADIUS 是模块化的,服务器核心模块包支持 LDAP、MySQL、PostgreSQL、 Oracle 和许多其他数据库。它支持所有流行的 EAP 验证类型,包括 PEAP(受保护的 EAP)和 EAP-TTLS(隧道 TLS 身份验证协议)。它还包含了超过 100 家厂家的数据字典,确保了对 NAS 设备的广泛支持。</p> <p> 译注:EAP(Extended Authentication Protocol 扩展协议认证):对 ppp 协议中 chap 认证的扩展,比 chap 更有灵活性和更高的安全性,支持 MD5、智能卡、可读卡等。</p> <p> 如果你需要安装和使用 RADIUS,可以直接选择 FreeRADIUS,下载链接是 <a href="/misc/goto?guid=4958346572912413140" rel="nofollow" target="_blank">http://www.freeradius.org</a>。希望不久之后我们的博客可以涉及更多 Linux FreeRADIUS 安装和配置的内容。</p> <p> 英文原文 <a href="/misc/goto?guid=4958346557732630412" rel="follow" target="_blank">iSystemAdmin</a> 编译:<a href="/misc/goto?guid=4958185140659301754" target="_blank">伯乐</a>在线 – <a href="/misc/goto?guid=4958345496923446032" target="_blank">唐尤华</a></p>