admin 管理员组

文章数量: 887021


2024年3月7日发(作者:accept函数作用)

1 RADIUS服务

1.1 radius工作原理

RADIUS(Remote Authentication Dial In User Service)远程认证拨号用户服务,是在网络访问服务器(Network Access Server,NAS)和集中存放认证信息的Radius服务器之间传输认证、授权和配置信息的协议。

RADIUS以Client/Server方式工作,实现了对远程电话拨号用户的身份认证、授权和计费功能。其Client端多为通过拨号方式实现的 NAS,主要用来将用户信息传递给服务器;RADIUS服务器则对用户进行认证,并返回用户的配置信息。为了保证传输的安全性,在Client和 Server之间传送的数据均以MD5方式加密。在RADIUS的Server端和Client端之间的通信主要有两种情况;一种是接入认证;另一种是计费请求。

使用RADIUS可以实现集中化的认证和记费功能,可以减少管理的负担和费用,同时还可以实现很多扩展的功能,如用户拨号时间的限定、用户拨号时间的配额、根据用户分配特定IP地址等等。RADIUS是一种基于UDP协议的上层协议,认证服务的监听端口号为1812,记费服务的监听端口号为1813。

RADIUS的工作流程是:(1)用户拨入NAS; (2)NAS向RADIUS服务器发送一系列加密的“属性/值”; (3)RADIUS服务器检查用户是否存在、属性/值是否匹配;(4)RADIUS服务器发送回“接受“或“拒绝“给NAS。

RADIUS服务器通常是基于数据库来实现的。对于大型ISP,通常会使用诸如Oracle之类的大型后台数据库。而对于中小型应用使用mySQL这样的数据库就足够了。RADIUS的身份验证也可以通过LDAP来实现,但其应用不如数据库那么广泛。

2 FREERADIUS安装

FREERADIUS是一套开源免费的完全兼容RADIUS协议的RADIUS服务器/客户端软件,可以用它对用户的接入和访问特定的网络进行有效的控制、授权、计费等等,它支持多种验证,包括文件、LDAP以及主流的支持SQL的数据库(ORACLE,MYSQL,DB2等等)。我们可以使用FREERADIUS来搭建一个3A认证的服务器,下面对详细介绍如何配置FREERADIUS。

2.1 安装FREERADIUS

首先从FREERADIUS的官方网站上下载最新的FREERADIUS的安装包,网址是:/。安装包一般被命名为,其中X是

带表其版本号,根据不同的发布时间,其值将会有所不同,我们以的安装包为例。

1) [root@localhostava]# tar zxvf

对其进行解包,将在本目录下生成一个freeradius-server-2.2.0的文件夹.

2) [root@localhostava]# cd freeradius-server-2.2.0进入此文件夹。

3) ./configure执行安装配置命令

出现以下信息:

。。。。。。

configure: creating ./

: creating Makefile

4) make编译安装包

5) make install安装radius

。。。。。。

Installing dictionary files in /usr/local/share/freeradius

/tmp/freeradius-server-2.2.0/libtool --finish /usr/local/lib

PATH="$PATH:/sbin" ldconfig -n /usr/local/lib

----------------------------------------------------------------------

Libraries have been installed in:

/usr/local/lib

If you ever happen to want to link against installed libraries

in a given directory, LIBDIR, you must either use libtool, and

specify the full pathname of the library, or use the `-LLIBDIR'

flag during linking and do at least one of the following:

- add LIBDIR to the `LD_LIBRARY_PATH' environment variable

during execution

- add LIBDIR to the `LD_RUN_PATH' environment variable

during linking

- use the `-Wl,--rpath -Wl,LIBDIR' linker flag

- have your system administrator add LIBDIR to `/etc/'

See any operating system documentation about shared libraries for

more information, such as the ld(1) and (8) manual pages.

----------------------------------------------------------------------

至此,FREERADIUS的安装过程就已经结束了,如果你是严格安装以上的顺序进行安装的,那么FREERADIUS将被默认安装在/usr/local的目录下。其中,在/usr/local/etc/raddb的目录下存放的是FREERADIUS的配置文件,/usr/local/bin下面存放的是FREERADIUS的常用命令。

另外,在FREERADIUS的安装包文件夹的DOC目录下存放有大量的关于FREERADIUS的说明文档资料,有兴趣的话可以去看看。

2. 查看服务器安装位置

#cd /usr/local/etc/raddb

查看该目录,如果存在证明服务器安装完成。

3.

2.2 启动和停止RADIUS的服务

2.2.1 启动radius服务

FREERADIUS的启动分为两种模式:一种是DEBUG模式,一种是正常启动模式。其中DEBUG模式用于观察RADIUS的运行情况,可以对验证请求的整个过程进行监测。如我们可以通过FREERADIUS的DEBUG模式,观察从NAS发出验证请求到服务器回应验证的结果的这段时间内,服务器做了哪些事情。而正常启动模式是单纯的启动RADIUS的服务,一般在后台运行,等待并处理NAS发出的验证请求。

1)启动DEBUG模式的方法是在系统终端下的命令行中执行:

[root@localhost freeradius-server-2.2.0]# radiusd –X

其中参数X代表以DUBUG模式启动。提示信息如下:

... adding new socket proxy address * port 52856

Listening on authentication address * port 1812

Listening on accounting address * port 1813

Listening on command file /usr/local/var/run/radiusd/

Listening on authentication address 127.0.0.1 port 18120 as server inner-tunnel

Listening on proxy address * port 1814

Ready to process requests.

证明服务器已经启动,处于监听状态,等待客户端发送信息。如果要停止FreeRadius服务,直接Ctrl+C中断。

2)正常启动模式,可以在系统终端下的命令行中执行:

[root@localhost freeradius-server-2.2.0]# radiusdor

2.2.2 测试FreeRadius服务器

[root@localhost ~]# radtestava testing 127.0.0.1 1812 testing123

Sending Access-Request of id 58 to 127.0.0.1 port 1812

User-Name = "ava"

User-Password = "testing"

NAS-IP-Address = 127.0.0.1

NAS-Port = 1812

Message-Authenticator = 0x00000000

rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=58, length=20

如果radtest收到如上的响应,则表明FreeRADIUS服务器工作正常。注意:用户名随便输入,都能验证通过,这个是因为用户配置文件没有进行配置,增加用户是修改users文件。

2.2.3 停止radius服务

1)在DEBUG模式下启动的RADIUS服务可以按键盘的CTRL+C来终止。

2)正常启动的RADIUS服务终止方式如下:

[root@localhost ~]# ps –ef

。。。。。。

root 4198 1 0 14:40 ? 00:00:00 gnome-screensaver

root 4204 1 0 14:41 ? 00:00:00 gnome-terminal

root 4208 1 0 14:41 ? 00:00:00 scim-bridge

root 4209 4204 0 14:41 ? 00:00:00 gnome-pty-helper

root 4210 4204 0 14:41 pts/1 00:00:00 bash

root 4235 3030 0 14:41 ? 00:00:00 sshd: root@pts/2

root 4237 4235 0 14:41 pts/2 00:00:00 -bash

root 4279 4210 0 14:44 pts/1 00:00:00 radiusd -X

root 4288 4237 0 14:45 pts/2 00:00:00 ps -ef

找到其中名为radiusd的进程,记住进程号,这里radiusd进程的ID为4279。

[root@localhost ~]# kill -9 4279

3 RADIUS服务器配置


本文标签: 服务器 用户 认证 启动 进行