Ubuntu中使用freeradius配置RADIUS,并在RADIUS中配置LDAP

安装RADIUS

Remote Authentication Dial In User Service,远程用户拨号认证系统由RFC2865,RFC2866定义,是目前应用最广泛的AAA协议。AAA是一种管理框架,因此,它可以用多种协议来实现。在实践中,人们最常使用远程访问拨号用户服务(Remote Authentication Dial In User Service,RADIUS)来实现AAA。RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAP、CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS也支持厂商扩充厂家专有属性。
freeradius一般用来进行账户认证管理,记账管理,常见的电信运营商的宽带账户,上网账户管理,记账,都是使用的radius服务器进行鉴权记账的。
Freeradius包含一个radius服务器和radius-client,可以对支持radius协议的网络设备进行鉴权记账,常见的开源路由器操作系统:如Openwrt,DD-wrt等,都支持radius协议,对PPPOE,热点,VPN等服务器进行账户管理认证,记账。
freeradius功能十分强大,支持众多的数据库。
执行sudo apt-get install freeradius freeradius-ldap freeradius-mysql进行安装freeradius。
安装完成之后,他会自己启动,需要手动关闭,不然后面会报错,或者直接简单粗暴从任务管理器中kill相关进程也行
service freeradius stop
修改一下配置文件,这里我的路径是/etc/freeradius/3.0,但是此时似乎并没有权限,需要chmod 777 /etc/freeradius授权一下。将下列内容取消注释,作为测试数据。

//File:/etc/freeradius/3.0/users
steve	Cleartext-Password := "testing"
	Service-Type = Framed-User,
	Framed-Protocol = PPP,
	Framed-IP-Address = 172.16.3.33,
	Framed-IP-Netmask = 255.255.255.0,
	Framed-Routing = Broadcast-Listen,
	Framed-Filter-Id = "std.ppp",
	Framed-MTU = 1500,
	Framed-Compression = Van-Jacobsen-TCP-IP

重启freeradius,一定要用管理员权限,X是调试模式
sudo freeradius -X
过程中会出来一堆巴拉巴拉
image-31
image-32
这个终端就这样挂着了,然后再开一个终端,执行radtest steve testing localhost 1812 testing123进行测试,其中参数分
别为用户名、密码、IP和端口、key(key是/clients.conf中的secret)
回显内容分别为
image-33
image-34
image-35
可以看到,验证成功了,Access
除了通过编辑配置文件来读取认证信息,还可以链接mysql,从数据库中获取用户数据。
在此需要设置为使用unix账号进行登陆验证,首先随便登陆一下,可以看到如下信息
image-36
从这里面可以得到一些信息吧,首先上面是接收到了一个Request,然后radius进行验证,注意,他执行的文件是/etc/freeradius/3.0/sitrs-enabled/default,其中的authorize模块就是他读取认证配置信息的地方,可以看到这里都是FALSE,说明都失败了,然后他提示User-Name=notfound,说明没找到用户名,随后返回了一个认证拒绝的信息。
现在知道了是从default文件中读取的,我们就要修改这个文件里的参数让它支持unix账号登陆。
打开该文件,找到这一段

#  Pull crypt'd passwords from /etc/passwd or /etc/shadow,
#  using the system API's to get the password.  If you want
#  to read /etc/passwd or /etc/shadow directly, see the
#  mods-available/passwd module.
#
unix

image-37
能看到他说这个模块可以从/etc/passwd或者/etc/shadow获取加密的密码信息,而我们知道这文件正好就是保存linux账号的文件,可以判定这个模块就是unix登陆模块,把底下#unix的注释去掉,保存退出。
之后需要查看模块是否安装,和ldap一样,在mods-available中存放的有所有模块文件,mods-enabled中存放着当前配置可用的模块,我们需要的模块就是unix,他已经包含在内了,直接重启服务即可。
sudo freeradius -X
重新开一个终端,执行如下测试,此时我的用户名和密码使用的就是我的ubuntu的账号
radtest kang root localhost 1812 testing123
可以看到接收到了一个Access-Accept
image-38
image-39
此时已经完成了使用freeradius配置radius服务器,并完成基于unix账号进行认证。

在RADIUS中配置LDAP

使得RADIUS可以和LDAP进行互通,然后就可以使用ldap的数据库中的用户数据,进行验证登陆了。
如果没有配置好LDAP,可以点击此处查看我的博文进行安装配置。
先修改/etc/freeradius/3.0/sites-enabled/default的配置信息,找到如下内容,如果你的ldap是注释状态,你需要把注释去掉,保存退出。

//File:/etc/freeradius/3.0/sites-enabled/default
#  The ldap module reads passwords from the LDAP database.
	-ldap

随后修改文件/etc/freeradius/3.0/mods-available/ldap,需要修改一下其中的配置,在修改好以后,还需要把这个文件复制到mods-enabled文件夹,干脆直接先复制过去然后在那个文件夹中修改也行,大致的参数值有这些,IP和端口都是默认的,localhost:389

//File:/etc/freeradius/3.0/mods-available/ldap
identity = 'cn=admin,dc=nodomain'
password = root
base_dn = 'ou=People,dc=nodomain'

之后新建文件/etc/freeradius/3.0/sites-available/site_ldap,内容如下

//File:/etc/freeradius/3.0/sites-available/site_ldap
server site_ldap{
	listen{
		ipaddr=0.0.0.0
		port=1833
		type=auth
	}
	authorize{
		update{
			cotrol:Auth-Type :=ldap
		}
	}
	authenticate{
		Auth-Type ldap{
			ldap
		}
	}
	post-auth{
		Post-Auth-Type Reject{
		}
	}
}

之后进行软连接
sudo ln -s /etc/freeradius/3.0/sites-available/site_ldap /etc/freeradius/3.0/sites-enabled/
然后授权一下,再修改一下所有者

sudo chmod 640 ldap
sudo chown freerad:freerad ldap

并不是777权限一定就好,比如上面如果授权777的话,会如下报错
image-46
然后启动RADIUS服务,sudo freeradius X
执行radtest TomBlack TomBlack localhost 1812 testing123,此时的用户名和密码成了LDAP数据库中之前导入的测试数据,可以看到接收到了access-accept
image-44
freeradius的输出信息
image-45
至此已经完成了在freeradius中配置ldap认证。

参考链接

【在ubtunu使用apt-get安装和配置freeradius】 – stationing
【ubuntu安装配置freeradius步骤】 – 莺声门径
【Freeradius服务器的搭建流程】 – 我是大笨蛋
【Ubuntu 12.04 Freeradius 安装实际过程】 – forgaoqiang
【Freeradius配置文件radiusd.conf详解】 – libinbin_1014

OK,THANKS FOR READING.BYE BYE~

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值