freeradius server和 client 部署(实战)

网上有很多的文章,但总是遇到各类问题,有的也没有明确的说明,在此总结了一下自己的实战记录,分享出来:(分享者:qin)

第一种freeradius-server安装方法:

1.安装依赖库

yum -y install libtalloc-devel

yum -y install openssl openssl-devel

yum -y install mysql-devel

2.获取源码

wget https://github.com/FreeRADIUS/freeradius-server/archive/freeradius-server-3.0.13.tar.gz
tar -zxvf freeradius-server-3.0.13.tar.gz
cd freeradius-server-3.0.13/

3.编译

./configure
make
sudo make install

 

也可参考官方安装指导文档:

https://wiki.freeradius.org/building/RHEL%20and%20Centos

第二种freeradius-server安装方法: 

1. 安装依赖库:libtalloc

yum -y install libtalloc-devel

2.安装依赖库:openssl

yum -y install openssl openssl-devel

3.安装依赖库和radius-server:

yum install -y freeradius freeradius-utils freeradius-mysql

4.查看安装结果:rpm -qa |grep freeradius

freeradius-mysql-3.0.13-15.el7.x86_64
freeradius-3.0.13-15.el7.x86_64
freeradius-devel-3.0.13-15.el7.x86_64
freeradius-utils-3.0.13-15.el7.x86_64

有以上4项说明本次安装成功

5. 装完成后,去修改配置文件/etc/raddb/users

(修改文件前记得备份一下原文件),在此文件的最后添加下面一行内容:

test Cleartext-Password := “123456”      -----》注意不要有任何中文字符存在

6. 如果启动了防火墙,需要修改防火墙配置,

允许freeradius所使用的端口1812,1813通过。命令如下:

iptables -A INPUT -p udp --dport 1812 -j ACCEPT

iptables -A INPUT -p udp --dport 1813 -j ACCEPT

7.启动debug验证模式

radiusd -X 

重新开启一个终端输入命令
radtest test 123456 localhost 1812 testing123

能收到如下报文说明认证成功:
Received Access-Accept Id 32 from 127.0.0.1:1812 to 0.0.0.0:0 length 20

8.配置允许接入的客户端所在IP段:

/etc/raddb/clients.conf 中修改允许客户端接入的IP段:

例如添加一下允许访问的IP段:

client 10.2.18.8/16 {
         secret = testing123
}

 

9. 申请RDS数据库

(1)创建库名:radius

(2)在radius库中创建各类数据表:

将机器上 /etc/raddb/mods-config/sql/main/mysql/schema.sql 数据表创建和结构倒入radius库中即可

共创建了7个表,分别是:

radcheck 用户检查信息表

radreply 用户回复信息表

radgroupcheck 用户组检查信息表

radgroupreply 用户组检查信息表

radusergroup 用户和组关系表

radacct 计费情况表

radpostauth 认证后处理信息,可以包括认证请求成功和拒绝的记录

10.建立组信息和用户信息

(1)连接数据库,进入radius库

(2)建立组信息:(在此新建组名称为user)

insert into radgroupreply (groupname,attribute,op,value) values (‘user‘,‘Auth-Type‘,‘:=‘,‘Local‘); 

insert into radgroupreply (groupname,attribute,op,value) values (‘user‘,‘Service-Type‘,‘:=‘,‘Framed-User‘); 

insert into radgroupreply (groupname,attribute,op,value) values (‘user‘,‘Framed-IP-Address‘,‘:=‘,‘255.255.255.255‘); 

insert into radgroupreply (groupname,attribute,op,value) values (‘user‘,‘Framed-IP-Netmask‘,‘:=‘,‘255.255.255.0‘);

(3)建立用户信息:(在此新建用户名为test,密码为testpwd)

insert into radcheck (username,attribute,op,value) values (‘test‘,‘Cleartext-Password‘,‘:=‘,‘testpwd‘);

(4)将用户加入组中

insert into radusergroup (username,groupname) values (‘test‘,‘user‘);

11.修改 FreeRADIUS中的mysql 认证配置

(1) 执行如下命令:
cd /etc/raddb/mods-enabled
ln -s ../mods-available/sql


(2) 修改 FreeRADIUS中的mysql 配置文件
该配置文件位于/etc/raddb/mods-available目录,名称为sql

将32行的内容修改为如下:

driver = "rlm_sql_mysql"


vim /etc/raddb/mods-available/sql (第98行)修改如下配置
dialect = "sqlite" -> dialect = "mysql"
//下列配置前的注释去掉

server = "localhost"        #//mysql服务器地址
port = 3306                     #//mysql 端口号
login = "radius"               #//myqsl 登录用户名
password = "radpass"    #//mysql 登录密码

read_clients = yes

 

(3)debug模式重启frreRADIUS (为了能在终端看到详细日志输出)

radiusd -X 

(4)再次验证用户认证

重新开启一个终端输入命令
radtest test testpwd localhost 1812 testing123

能收到如下报文说明认证成功:
Received Access-Accept Id 32 from 127.0.0.1:1812 to 0.0.0.0:0 length 20

(5)正式操作radius-server时的

启动命令:service radiusd start

停止命令:service radiusd stop


安装radius客户端:

1.获取客户端源码:

wget -c ftp://ftp.freeradius.org/pub/freeradius/freeradius-client-1.1.7.tar.gz

tar zxvf freeradius-client-1.1.7.tar.gz 

cd freeradius-client-1.1.7

2.编译安装:

./configure

make && make install

3.安装成功后的可执行文件放至路径:

/usr/local/sbin/

|-- sbin

   |-- radacct                          发送计费包

   |-- radembedded                 生成配置文件(未使用过)

   |-- radexample                    发送鉴权包

   |-- radiusclient                    发送鉴权包

   |-- radlogin                         发送鉴权包

   `-- radstatus                       查看服务器状态

 

4.客户端配置文件位置:

(1) /usr/local/etc/radiusclient/radiusclient.conf

注意一下配置内容即可:

auth_order      radius

authserver      localhost

(2) /usr/local/etc/radiusclient/servers

密钥字段要和服务器端配置的一样,否则认证不通过

localhost/localhost testing123

 

 

freeradius server和 client 部署(实战)

上一篇:AngularJs-destroy事件


下一篇:log4net配置和获取ILog实例