忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 2864 | 回复: 7

[服务应用] freeradius可以同时支持多种认证吗? [复制链接]

论坛徽章:
0
发表于 2018-01-18 15:31 |显示全部楼层
做了一个freeradius,想要实现AD+证书双重认证,在实际测试中AD和证书单独认证都没问题,但是两个一块的话,只要有一个认证通过就会放行,我想要的是两个都认证通过才放行。是radius不支持同时认证吗?还是需要写什么规则?比如if判断语句?

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2018-01-19 17:49 |显示全部楼层
没有证书也能用?

论坛徽章:
0
发表于 2018-01-22 08:41 |显示全部楼层
回复 2# q1208c

是的,两个认证都开启的话,只要有一个认证通过就会放行

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2018-01-23 17:52 |显示全部楼层
回复 3# qq532342743

不会是下面这个原因吧?

http://lists.freeradius.org/pipe ... ptember/084839.html

论坛徽章:
0
发表于 2018-01-24 08:43 |显示全部楼层
回复 4# q1208c

windows本身可能不支持。我之前做过用AD+MAC的双认证,也是在windows上认证的,只不过那次用了数据库,在数据库上做了认证条件判定,而这次认证没有用到数据库。我觉得应该还是缺少一个判断认证的条件,freeradius可以在本身做判定吗?我在官网看到一个unlang语言,不知道是不是用这个来做呢?

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2018-01-26 16:32 |显示全部楼层
回复 5# qq532342743

那应该就是配置里的东西了。
我很久没搞过了,现在也没有环境,不太好测试。

Sorry!

论坛徽章:
0
发表于 2018-01-29 09:48 |显示全部楼层
回复 6# q1208c

没事,还是感谢回答

论坛徽章:
16
IT运维版块每日发帖之星
日期:2015-08-24 06:20:00综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00IT运维版块每日发帖之星
日期:2015-10-25 06:20:00IT运维版块每日发帖之星
日期:2015-11-06 06:20:00IT运维版块每日发帖之星
日期:2015-12-10 06:20:00平安夜徽章
日期:2015-12-26 00:06:302016猴年福章徽章
日期:2016-02-18 15:30:34IT运维版块每日发帖之星
日期:2016-04-15 06:20:00IT运维版块每日发帖之星
日期:2016-05-21 06:20:00综合交流区版块每日发帖之星
日期:2016-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-14 06:20:00
发表于 2018-06-01 16:12 |显示全部楼层
回复 7# qq532342743

回复 3# qq532342743

多看看官网,http://wiki.freeradius.org/guide/Concepts

它的逻辑设计就是这样的,只要一个认证通过,就直接到了post-auth/accouting部分了,就是一个流水线。

如果你要改变这个流水线,就要加自己的逻辑, 找个文档看看就懂了,如下仅供参考。

# xxx/site-available/default

auenticate {


        WINDOWS_AD #我并不知道ad验证叫什么名字,这里只是实例而已。

        if ((ok) {
            update {
                &control:Auth-Type := XXX

            # 更改了属性,默认有request/reply/proxy-request/proxy-reply/session-state/control, control就是不发给nas或者radius的,内部流程控制用的。Auty-Type: = XXX ,这个:= 运算符就是如果不存在就add。你根据自己需要改。还有+=, -=运算符。

             # 这里就是,你上个方法验证过了,但不给你到post-auth,再走另外一个验证方法。 ok/updated等都是模块返回值
}

       notfound        information was not found
        noop            the module did nothing
       ok              the module succeeded
        updated         the module updated the request
        fail            the module failed
        reject          the module rejected the request
        userlock        the user was locked out
        invalid         the configuration was invalid
        handled         the module has handled the request itself



返回值还有对应的行为
default  noop
reject return
fail return
ok continue ( priority 3)
handled    return
invalid      return
userlock    return
notfound continue (priority 1)
noop       continue (priority 2)
updated    continue (priority 4)


就是改变起常规的验证流程,你可以看到有些是if (ok || updated)这个是什么意思呢,用radtest看一下就懂了。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP