Archive

标签为 ‘AAA’的文章

ASR9k + Freeradius

Refer to IOX + Freeradius article that very less on Internet and lots of IOS with Freeradius, after study that, I summarized that by follow:

1: Install freeradius
You need install free radius first, ignore the part, you can check it by yourself or check my last article <RHEL7 install freeradius>

2: Config freeradius
clients.conf

[root@frank radius]# more /etc/raddb/clients.conf
client 10.x.x.x {
        secret = cisco123
        shortname = iox-5.2.2
        nas_type = cisco
}

users

Notes: as follow, we can assign a group for user “frank”, now priv5 is custom group, you can assign default group, e.g:
Cisco-avpair = “shell:task=#netadmin,#sysadmin,#cisco-support”

Btw, you can direct defined priv15 by follow:
Cisco-AVPair = “shell:priv-lvl=15”

Or direct defined cmd by follow:
Cisco-AVpair = “shell:cmd=show”

If you assign cisco-support group first, and then to limit command by “cmd=show”, cmd will unavailable; and vice versa.

[root@frank radius]# more /etc/raddb/users
frank   Cleartext-Password := "frank"
                Service-Type = NAS-Prompt-User,
                Reply-Message = "Hello!",
                Login-Service = Telnet,
                Cisco-AVPair = "shell:tasks*=#priv5,"

完整阅读

RHEL7 Install/Use Freeradius

原来一直在windows上用Freeradius,使用步骤简单,没仔细想工作原理,不过win版本总有些小问题。昨天把它装到RHEL7上了,折腾了一天,总算基本搞明白了里面的大概结构,如下所示:

安装部分

为了解决继承关系问题,最好安装做好的rpm包,对于freeradius有很多包,不用困惑,这是由于freeradius可以跟其他组件组合使用如LDAP或MYSQL等。我直接安装了一个干净的包,不带其他组件:
完整阅读

L2TP – Radius 认证

在之前的总结中整理过L2TP的两种模式,一个是有LAC,另一个无LAC,详细看《L2TP两种部署方法简述》。在这里,将对L2TP认证这块做详细总结,不过此文只总结LNS的认证(LAC认证类似),而且是通过AAA服务器。

AAA服务器

常见的AAA协议主要分两种,一种是思科专有的TACACS;另一种就是Radius。思科通过ACS服务器支持两种AAA协议,而Radius,根据不同厂商而不同,常见的有freeradius和daloradius。RAdius使用了两套UDP端口:
http://en.wikipedia.org/wiki/RADIUS
1. 1812 for Authentication and 1813 for Accounting that provide by IANA
2. ports 1645 and 1646 (authentication and accounting) were used unofficially in past
传统的1645和1646仍然有客户端在用,所以为了向后兼容,Radius会监控这两套端口。

Daloradius

这个是集成了mysql和php的web客户端,很方便。有两种安装方式,一种是OVA文件,直接用vmware导入既可以用,里面是bundle好的;另一种就是在linux里单独安装daloradius,php和mysql。第二种方法太麻烦,没有使用过,第一种试过,但是遇到了一些问题,不知道为什么不能使用admin账户,为了这个还特意在网上发了帖子,但是暂时没人理:
https://sourceforge.net/p/daloradius/discussion/684102/thread/487fe3b8/

不过在使用中,发现了一些比较有价值的关于VMware的一些技巧:

完整阅读

L2TP两种部署方法简述及Radius认证

关于L2TP,一直想找个时间好好总结下,最近同事正好遇到一个问题,所以把整个L2TP的内容研究了下,总算搞的清楚些了。虽然网上L2TP的文档很多,但感觉都不是非常详细。对于L2TP,有两个关键组件,一个是LAC,另一个就是LNS。常说的tunnel是LAC与LNS建立的。两个组件都可以提供认证,在LAC上的认证主要区分客户去那个tunnel,而LNS的认证是验证用户的合法性。对于L2TP的拨号方式,也分两种,一种是独立LAC,另一种是LAC客户端直接连LNS。

独立LAC + Lab

独立LAC模式在国内很少部署,因为此模式需要和运营商配合,而这这种模式主要考虑电话线路,直接提供VPN拨号。此拨号有别于国内的PPPOE,国内的PPPOE仅仅提供了宽带服务,而这里说的独立LAC,PPPOE终结在BRAS后,会向指定的LNS建立tunnel,直接把用户通过tunnel路由到相应的VPN网络中。国内的BRAS其实可以实现LAC,只不过没有这样部署而已。

简单的独立LAC Topology:

PC—-LAC—ISP—LNS—Server

PC建立PPPOE的拨号,LAC仅作第一次认证找到相应的tunnel并终结PPPOE,而PPP终结在LNS中。拨号建立后,PC只知道Server的地址,对于ISP是透明的。
具体的测试内容,可以看我这篇总结:《L2TP – 独立LAC测试分析

2013-5-16 更新:路由模拟PC拨号
在某些情况下,不方便直接连PC拨号,索性直接用路由器拨号,那么路由器怎么拨号呢?根据网上的大部分配置,基本都是路由器用serial口封装PPP拨号,这个很好理解。那么如果现实没有V35线又想拿真实设备做实验,怎么办呢?只要是PPP不就ok了么,那么就用PPPOE吧,其实路由器很容易实现,只是类似的配置模板比较少,下面是配置:

bba-group pppoe global
!
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface FastEthernet3/0
 no ip address
 duplex full
 pppoe enable group global
 pppoe-client dial-pool-number 1
!
interface Dialer1
 mtu 1492
 ip address negotiated
 encapsulation ppp
 dialer pool 1
 ppp chap hostname test@cisco.com ppp chap password 0 test

所有相关的PPPOE拨号属性都在Dialer里配置,另外此处直接用bba-group feature,全局PPPOE的属性可以在这下面配置。配上这个后,他会自动出发并发送PPPOE报文。老的配置中,PPPOE是借用VPDN的拨号方式来实现的,现在已经不用了,只有在L2TP时才会用到VPDN的拨号命令。

LAC客户端 + Lab

在日常应用中,大多数都是采用LAC客户端(此时PC就集成了LAC的角色)直接连LNS。这种方式的前提是LNS的地址可路由,相当于先获得internet访问,再进行L2TP拨号。

简单的LAC客户端Topology:

PC—ISP—LNS—Server

在这种环境下,PC可以到达ISP上其他的网络,包括LNS。所以此时PC会建立L2TP拨号,拨号里面的地址就是LNS的地址,此时PC相当于LAC的角色。
具体的测试内容,可以看我这篇总结:《L2TP – LAC客户端测试分析

2014-1-16 更新:
“Requester is not authorized to establish a control channel”

在LAC客户端测试分析中,我用到了这条命令:”no l2tp tunnel authentication”,当时也是测试很长时间,查了很多资料才发现的,由于PC上没有tunnel的认证,所以需要关闭他。在有LAC的情况下,是需要tunnel认证的,但是如果不需要,常见的手法是去掉”l2tp tunnel password 0 cisco”,看上去没什么问题,因为已经不配置password了,但事实上他仍然需要去认证,由于没有password,认证一直失败,并一直报错(ASR1k的debug):

L2TP tnl   0803D:00004297: Requester is not authorized to establish a control channel

下面是抓包信息:

No. Source           Destination     Protocol Length Info                                                           
1   10.10.10.1       10.10.10.2      L2TP     187    Control Message - SCCRQ (tunnel id=0, session id=0)
2   10.10.10.2       10.10.10.1      L2TP     188    Control Message - SCCRP (tunnel id=3, session id=0)  
3   10.10.10.1       10.10.10.2      L2TP     106    Control Message - StopCCN (tunnel id=28305, session id=0)
4   10.10.10.2       10.10.10.1      L2TP     54     Control Message - ZLB      (tunnel id=3, session id=0)

Frame 3: 106 bytes on wire (848 bits), 106 bytes captured (848 bits)
Ethernet II, Src: Cisco_40:35:79 (68:bd:ab:40:35:79), Dst: Cisco_72:bb:11 (00:22:55:72:bb:11)
Internet Protocol Version 4, Src: 10.10.10.1 (10.10.10.1), Dst: 10.10.10.2 (10.10.10.2)
User Datagram Protocol, Src Port: l2f (1701), Dst Port: l2f (1701)
Layer 2 Tunneling Protocol
    Packet Type: Control Message Tunnel Id=28305 Session Id=0
    Length: 64
    Tunnel ID: 28305
    Session ID: 0
    Ns: 1
    Nr: 1
    Control Message AVP
    Result-Error Code AVP
        1... .... .... .... = Mandatory: True
        .0.. .... .... .... = Hidden: False
        .... ..00 0010 0100 = Length: 36
        Vendor ID: Reserved (0)
        Type: Result-Error Code (1)
        Result code: 4 - Requester is not authorized to establish a control connection
        Error code: 0 - No General Error
        Error Message: Invalid challenge response
    Assigned Tunnel ID AVP

所以两边都no掉认证才可以,如”no l2tp tunnel authentication”。

Radius认证 + Lab

根据L2tp的环境,AAA认证可以部署在多个环节,我对LNS环节认证做了总结。
具体的测试内容,可以看我这篇总结:《L2TP – 独立LAC测试分析

L2TP Establish Step

每次复习L2TP的东西,都要找总结中l2tp建立过程的link,实在是累,这次把建立过程的图放到这个汇总贴中,方便复习:
下面的图是从网上找到的,应该是CCO文档中的,算是逻辑的建立过程:
l2tp-topology-logic
为了更能方便理解每一步的详细过程,在另一篇文档中找到了这个图,结合上面的图,看后添加的标记:
注:摘自《Cisco ISG Design and Deployment Guide: ATM to ISG LNS Aggregation
l2tp-topology-pak

AAA认证实列分析

aaa new-model
!—激活AAA访问控制
aaa authentication login default tacacs+ local
①用户登录时默认起用Tacacs+(这个是默认的名字,可以通过命令更改这个默认列表名)做AAA认证,不成功就用本地数据库(username);

② 当vty上设了pssword时,只有在local后面加上line才起作用,这时登录界面还是以username开头,这时用户名和密码都是在vty设的password密码,如pass zy;登录时,username:zy / pssword:zy,这样进入用户exec,然后通过在router上设置的enable进入特权exec;

③如果在列表最后加none,那么就不需要认证直接进入用户exec界面,然后再根据enable密码进入特权exec;
aaa authentication login vty local
!—列表名为vty,调用才能生效,如logging authen vty,加了前面那句后,这句加上就没什么意义了
aaa authentication enable default group tacacs+ enable
!—enable密码的授权交给tacacs+,如果失败,用本地enable密码进行验证
完整阅读