[非经允许,不得转载]
“风萧萧兮易水寒,壮士一去兮不复还。”
折腾了一个多礼拜,总算把Radius Server搭建起来了,期间在网络上爬了大量的博文,大多已经老旧,在实际搭建测试过程中遇到了很多问题,花了大量时间分析并解决了这些问题,特此立帖纪念。
好了,不说废话了,开始我们的Radius Server搭建之旅。
首先,下载 http://freeradius.org/download.html (不要问我为什么用它,只因为你找不到比他更优秀的)目前最新的稳定版本是2.2.0,文件名是freeradius-server-2.2.0.tar.bz2。
1. 安装openssl 和libssl-dev
| sudo apt-get install openssl libssl-dev |
2. 编译
| #tar freeradius-server-2.2.0.tar.bz2 #cd freeradius-server-2.2.0 #./configure –with-openssl –with-openssl-includes=/usr/include/openssl \ --with-openssl-libraries=/usr/lib #make #make install |
PS: 我刚开始编译的时候,并没有添加选项导致EAP method为PEAP,TLS,TTLS时Radius
Server无法启动。
更新系统库Cache
| ldconfig -v |
3. 测试是否安装成功:
1) 在终端上运行:
| #radiusd –Xf |
2) 在另外一个终端上运行:
| # radtest test test localhost 0 testing123 |
如果出现下面的信息,说明可以Radius Server可以进行通信。
| Sending Access-Request of id 18 to 127.0.0.1 port 1812 User-Name = "test" User-Password = "test" NAS-IP-Address = 127.0.0.1 NAS-Port = 0 rad_recv: Access-Reject packet from host 127.0.0.1 port 1812, id=18, length=20 |
4. 配置Radius
1) 修改clients.conf:增加
| client 192.168.0.0/24 { secret = testing123 /* 9002与Freeradius之间通讯的密钥*/ #shortname = private-network /* 9002的hostname */ } |
192.168.0.x的AP都可以访问Radius服务器。
2) 修改eap.conf
| default_eap_type = peap /*默认的EAP method*/ 注释掉 #make_cert_command= “{certdir}/bootstrap” |
3) 修改users,添加下面的信息
| whatever Cleartext-Password := " whatever" #客户端用户名、密码 Service-Type = Framed-User, Framed-Protocol = PPP, Framed-IP-Address = 255.255.255.254, Framed-IP-Netmask = 255.255.255.0 |
PS:
目前我对这部分的理解:
比如,如果修改了server.cnf的input_password(默认是whatever),则需要修改eap.conf文件中的tls字段的private_key_password(默认是whatever)信息。
5. 生成证书
如果使用外部证书可以跳过这步
5.1生成随机数:
| # cd /usr/local/etc/raddb/certs #./bootstrap #记的一定要做这一步,在测试严重EAP-TLS的过程中,Radius Server总是提示”unknown signed CA”,反复检查无果后,在eap.cnf文件中发现“make_cert_command= “{certdir}/bootstrap””,总算知道证书没有签名的原因,原来出在这里。 # make dh # make random |
5.2 修改配置文件
编辑ca.cnf、server.cnf、client.cnf文件中的"input_password" 和 "output_password"字段,设置密码,分别编辑[certificate_authority], [server], 和[client]字段为证书的信息, default_days字段为证书有效期。
5.3 制作证书
| # make ca server client |
5.5 验证根证书:
| # openssl x509 -in ca.pem -text –noout |
5. 6安装客户端证书:
d) 导入根证书:生成的ca.der为根证书,需要先导入到客户端,注意存放的位置要选受信任的根证书颁发机构。
e) 导入客户端证书:生成的umitor@yeah.net.pem是客户端证书(也就是client.cnf中的commonName+“.pem”,特别的,commonName也是客户端的登录名),不过使用client.p12文件更容易导入Windows系统。
PS:
1. 如果修改了server.cnf的input_password,则需要修改eap.conf文件中的tls字段的private_key_password信息。
2. clients.cnf中的input_password是安装证书用到的密码,即私密密码。
6. 设置为开机自动启动
| # cp freeradius-server-2.1.6/scripts/rc.radiusd /etc/init.d/radiusd # vi /etc/init.d/radiusd |
在 #!/bin/sh 一行后面加入:
| # radiusd This shell script takes care of starting and stopping # standalone radiusd. # # chkconfig: - 70 70 # description: free radius server. # processname: /usr/local/sbin/radiusd # config: /usr/local/etc/raddb |
使用命令:
| #chkconfig --add radiusd #chkconfig radiusd on |
Q&A
Q1:如何删除误安装的证书
单击“开始→运行”,输入“certmgr.msc”,在打开的窗口中选择“中级的证书颁发机构→证书”,然后找到相应的证书并右击之,选择“删除”即可。
本文详述了如何一步步搭建FreeRadius Server,包括安装openssl和libssl-dev,编译步骤,配置Radius,生成证书以及设置开机启动。在配置过程中特别提到了EAP方法的设置和证书相关配置,确保了服务器与客户端的通信。同时,文章还提供了证书的删除方法。
2794

被折叠的 条评论
为什么被折叠?



