ISE与ASA及Anyconnect配合实现特定终端设备VPN准入功能目标实现特定用户只能通过特定的智能终端设备VPN接入办公网络。例如:当用iPAD通过anyconnect连接VPN时,公司要求只有公司发给特定员工的iPAD才能允许接入VPN。实现方法针对特定设备才能够接入ASAVPN,有多种方法可以实现。例如:证书认证、LDAP/Radius服务器返回设备硬件信息等。本文档通过ASAVPN的DAP方式得以实现。利用IOS设备每个设备唯一的UDLDID来实现设备VPN准入。具体流程为:1.员工新发iPAD时,将iPAD的UDID硬件信息记录在该员工AD账户的“Descripton”字段。2.ASAVPN将ISE作为认证设备,ISE再将AD指定为外部数据源。3.员工通过iPAD利用anyconnect连接VPN,Anyconnect提示用户输入用户名密码。4.员工在anyconnect输入用户名密码,ASA将认证信息发送给ISE,然后ISE将账户信息发送给AD比对。如果帐号密码正确,则同时ISE向AD索取该账户的Description字段信息。5.ISE读取到Description字段信息后,将此UDID信息利用radius属性下发给ASA。6.ASA收到从AD上读取到的UDID信息后,利用DAP策略和anyconnect发送过来的iPAD设备的UDID进行比对。如果比对成功,设备允许接入。如果失败,设备被拒绝接入。DAP(DynamicAccessPolicy)动态访问控制列表是一个全局设定的访问控制策略表,在任何连接模板或者访问组相关用户接入后都需要检查DAP作为判断条件。所以我们在设定相关DAP策略时要从全局考虑,DAP可以引用非常丰富的条件进行判断并访问控制,并可进行条件的各种组合。如果有客户有非常复杂的条件判断要求,在现有条件组合很难满足逻辑判断要求,还可以使用LUA语言进行来写程序脚本,让ASA的DAP功能来执行,从而可以完成各种苛刻的访问控制要求。DAP执行顺序是按照同样优先级情况下从上至下执行,当然可以通过调整优先级来优先执行特定语句。注意:DAP是所有VPN接入用户都必须进行的一项安全策略检查,所以在进行DAP策略设定时要从全局考虑,不要因为设定某个条件而影响到其他不相关用户接入。配置方法AD关键设定在AD的用户的Description字段里,将苹果终端的UDID输入该字段。后面在ISE向AD读取用户信息时就可以得到对应的UDID信息,并发送给ASA了。ISE关键设定添加AD作为外部数据源设定认证策略将AD指为数据源设定授权策略这里面我们将从AD读取到的description字段的UDID信息,通过radius(4143)[client-fw-description]属性下发。注意,我们只是挑选出一个不用的radius属性来作为UDID信息的承载下发给ASA。然后ASA在接受到radius下发的access-accept数据包里就能够带着这个属性和UDID信息了。最后ASA再通过DAP读取这个信息并与移动终端的UDID比对,实现鉴权。ASA关键设定检查UDID的DAP设定缺省DAP策略设定最终DAP策略测试结果合法苹果手机接入测试ASA防火墙debug输出参考ciscoasa#debugdaperrorsdebugdaperrorsenabledatlevel1ciscoasa#debugdaptracedebugdaptraceenabledatlevel1ciscoasa#terminalmonciscoasa#DAP_TRACE:DAP_open:7FFE53D169C0DAP_TRACE:Username:test,aaa.radius[1][1]=testDAP_TRACE:Username:test,aaa.radius[24][1]=ReauthSession:0a4b35550000002852A0DA7DDAP_TRACE:Username:test,aaa.radius[25][1]=e6be6e13502ece7aa4a0c04443bb47c241c0d7ddDAP_TRACE:Username:test,aaa.radius[25][2]=CACS:0a4b35550000002852A0DA7D:ise12/171777099/41DAP_TRACE:Username:test,aaa.radius[4143][1]=5690c0da09c365e26ac320708b44db2b2130c1d9-ISE通过radius协议下发的属性DAP_TRACE:Username:test,aaa.cisco.grouppolicy=GroupPolicy_profile_iPadDAP_TRACE:Username:test,aaa.cisco.username=testDAP_TRACE:Username:test,aaa.cisco.tunnelgroup=profile_iPadDAP_TRACE:Username:test,DAP_add_SCEP:sceprequired=[FALSE]DAP_TRACE:Username:test,DAP_add_AC:-----------------------anyconnect发送上来的设备信息-----------------------------------------------endpoint.anyconnect.clientversion=3.0.09231;endpoint.anyconnect.platform=apple-ios;endpoint.anyconnect.devicetype=iPhone3,1;endpoint.anyconnect.platformversion=6.1.3;endpoint.anyconnect.deviceuniqueid=5690c0da09c365e26ac320708b44db2b2130c1d9;DAP_TRACE:dap_add_to_lua_tree:aaa.radius[1][1]=testDAP_TRACE:name=aaa.radius[1][1],value=testDAP_TRACE:dap_add_to_lua_tree:aaa.radius[24][1]=ReauthSession:0a4b35550000002852A0DA7DDAP_TRACE:name=aaa.radius[24][1],value=ReauthSession:0a4b35550000002852A0DA7DDAP_TRACE:dap_add_to_lua_tree:aaa.radius[25][1]=e6be6e13502ece7aa4a0c04443bb47c241c0d7ddDAP_TRACE:name=aaa.radius[25][1],value=e6be6e13502ece7aa4a0c04443bb47c241c0d7ddDAP_TRACE:dap_add_to_lua_tree:aaa.radius[25][2]=CACS:0a4b35550000002852A0DA7D:ise12/171777099/41DAP_TRACE:name=aaa.radius[25][2],value=CACS:0a4b35550000002852A0DA7D:ise12/171777099/41DAP_TRACE:dap_add_to_lua_tree:aaa.radius[4143][1]=5690c0da09c365e26ac320708b44db2b2130c1d9DAP_TRACE:name=aaa.radius[4143][1],value=5690c0da09c365e26ac320708b44db2b2130c1d9DAP_TRACE:dap_add_to_lua_tree:aaa[cisco][grouppolicy]=GroupPolicy_profile_iPadDAP_TRACE:name=aaa[cisco][grouppolicy],value=GroupPolicy_profile_iPadDAP_TRACE:dap_add_to_lua_tree:aaa[cisco][username]=testDAP_TRACE:name=aaa[cisco][username],value=testDAP_TRACE:dap_add_to_lua_tree:aaa[cisco][username1]=testDAP_TRACE:name=aaa[cisco][username1],value=testDAP_TRACE:dap_add_to_lua_tree:aaa[cisco][username2]=DAP_TRACE:name=aaa[cisco][username2],value=DAP_TRACE:dap_add_to_lua_tree:aaa[cisco][tunnelgroup]=profile_iPadDAP_TRACE:name=aaa[cisco][tunnelgroup],value=profile_iPadDAP_TRACE:dap_add_to_lua_tree:aaa[cisco][sceprequired]=falseDAP_TRACE:name=aaa[cisco][sceprequired],value=falseDAP_TRACE:dap_add_to_lua_tree:endpoint[application][clienttype]=AnyConnectDAP_TRACE:name=endpoint[application][clienttype],value=AnyConnectDAP_TRACE:dap_install_endpoint_data_to_lua:endpoint.anyconnect.clientversion=3.0.09231DAP_TRACE:name=endpoint.anyconnect.clientversion,value=3.0.09231DAP_TRACE:dap_install_endpoint_data_to_lua:endpoint.anyconnect.platform=apple-iosDAP_TRACE:name=endpoint.anyconnect.platform,value=apple-iosDAP_TRACE:dap_install_endpoint_data_to_lua:endpoint.anyconnect.devicetype=iPhone3,1DAP_TRACE:name=endpoint.anyconnect.devicetype,value=iPhone3,1DAP_TRACE:dap_install_endpoint_data_to_lua:endpoint.anyconnect.platformversion=6.1.3DAP_TRACE:name=endpoint.anyconnect.platformversion,value=6.1.3DAP_TRACE:dap_install_endpoint_data_to_lua:endpoint.anyconnect.deviceuniqueid=5690c0da09c365e26ac320708b44db2b2130c1d9DAP_TRACE:name=endpoint.anyconnect.deviceuniqueid,value=5690c0da09c365e26ac320708b44db2b2130c1d9DAP_TRACE:Username:test,SelectedDAPs:,iPAD_FilterDAP_TRACE:dap_process_selected_daps:s