PIX上有一个download-able ACL的功能,可以让PIX从radius服务器上下载ACL到本地,Cisco文档介绍了三种方法来实现此功能。
1、事先在PIX上定义好ACL,当用户通过PIX认证时,radius服务器将该用户对应的ACL名称告诉PIX,然后PIX将ACL加载到用户的会话上。这种方法的缺点是必须事先在PIX上将ACL写好。
这是三种方法中实现最简单的一种方法,也是让我耗时最长的一种方法,因为Cisco的官方文档又错了。
2、使用Cisco AV Pair,在radius服务器上定义attribute-value (也就是vendor-specific-attribute,VSA),在AV pair中定义用户对应的ACL。这种方法的缺点是ACL的大小不能超过4096字节。
3、使用ACS的download-able ACL的功能,在radius服务器上先写好ACL,当用户认证时,让PIX自己下载与用户所对应的ACL。这是Cisco最推崇的方法。
下面来简单谈谈使用各种方法实现时的注意事项:
不管用什么方法,PIX上aaa部分的配置都基本一样:
aaa-server ciscorad protocol radius
aaa-server ciscorad (inside) host 10.10.5.24 cisco1 timeout 10
aaa authentication include http inside 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 ciscorad
方法1:
首先在PIX上创建一个ACL:
access-list wtest permit ip any host 192.168.10.5
access-list wtest deny ip any any
接下来,在ACS上进行设置
1、在ACS上点击“network configuration”,添加一个AAA的client,认证协议选“RADIUS(Cisco IOS/PIX)”。
2、进入“user setup”,添加一个用户,放到相应的组中。
3、进入“group setup”,对此用户属于的组进行编辑。在“IETF RADIUS Attributes”部分,选中[011] Filter-Id,写入ACL的名字,如下图:
值得注意的是:PIX会自动识别“acl=”,第一行必须以回车结束,第二行放的是ACL的名称。
方法2:
1、在ACS上点击“network configuration”,添加一个AAA的client,认证协议选“RADIUS(Cisco IOS/PIX)”。
2、进入“user setup”,添加一个用户,放到相应的组中。
3、进入“group setup”,对此用户属于的组进行编辑。在“Cisco IOS/PIX RADIUS Attributes”部分,选中[009\001] cisco-av-pair,写入如下语句:
ip:inacl#100=permit ip any 192.168.10.5 255.255.255.255
ip:inacl#200=deny ip any any
方法3:
1、在ACS上点击“network configuration”,添加一个AAA的client,认证协议选“RADIUS(Cisco IOS/PIX)”。
2、进入“user setup”,添加一个用户,放到相应的组中。
3、进入“shared profile components”,点击“Downloadable IP ACLs”,在里面添加一个ACL。
4、再次进入“user setup”,在“Downloadable ACLs”部分,选中“Assign IP ACL”,并且指定好该用户的ACL即可。
测试环境:
Cisco PIX Firewall Version 6.3(4)
Cisco PIX Firewall 515E
Cisco ACS 3.3 for windows
Jre ver 1.5