Cisco网络准入控制(NAC)之前名为Cisco Clean Access,主要用于在网络基础架构中强化安全策略。
网络准入控制(NAC)是一项由思科发起、多家厂商参加的计划,其宗旨是防止病毒和蠕虫等新兴黑客技术对企业安全造成的危害。借助NAC,客户可以 只允许合法的、值得信任的端点设备(例如PC、服务器、PDA)接入网络,而不允许其他设备接入。在初始阶段,当端点设备进入网络时,NAC能够帮助思科 路由器实施访问权限。NAC决策可以根据端点设备的信息制定,例如设备的当前防病毒状况以及操作系统补丁等。网络将按照客户制定的策略实行相应的准入控制 决策:允许、拒绝、隔离或限制。
初始化阶段
1)主机接入到Switch
2)Switch立即送SNMP给CAM(这个trap包含了Client的MAC地址和Switch端口号)。
3)CAM首先要看是否这个Mac address已经被Posture assessment过(CAM看是否Mac地址在已经认证的表里面。换句话说,check这台机器是不是曾经从网络里面logged off的),如果是曾经logged off的机器,则只需直接放到access vlan 或者让它重新认证,如果重新认证的话,一般我们不会再次做Postrue assessment,只需要authentication就可以。这个可以在CAM上定义。
4)如果这是一台新的Client,CAM会送一个SNMP write给Switch,让Switch的这个接口处于authentication VLAN(比如vlan 200)。
5)CAM同时会把这个Client的信息添加到自己的OOB Discovered list 列表里面。这个信息是从Switch上发过来的SNMP Mac trap 或Switch link up down traps。
6)到了这里,Client 已经被放到了Untrasted Vlan里面vlan 200,所有的从Client过来的traffic都被强迫通过CAS。当然CAS上面已经被配置允许DHCP 和DNS queries信息通过,缺省情况下,是不允许通过任何流量的。
7)这个时候,Client要开始从DHCP server 上Request 一个IP 地址了。
8)Client的IP Address request被CAS的untrusted 口(Vlan 200)接收,在CAS上,request packet的VLAN ID 被改成CAS trusted 口的VLAN ID比如VLAN 100(如何更改vlan其实使我们在CAM上已经预定义好的),反向同时也需要在CAS上更改包的vlan。
9)Okey,当DHCP server收到这个request后,它会分配给client 一个VLAN 100 的地址,因为这个DHCP server是在VLAN 100 里面
10)CAS 把从DHCP返回来的packet送给Client,这里其实CAS又做了一次更改VLAN ID的工作。
11)此时,这个Client已经拥有了Access vlan 100 里面的地址,但它又处在authentication VLAN里面。注意这种方式只能用在Virtual gateway 模式,如果是Router模式,CAS两端需要不同的地址。
CAA 需要做的工作
1)Okey,到了此时,这台Client处于未认证的角色里面,而且有了IP address,除了DHCP和DNS queries,其他的任何流量都不可以通过CAS(我们可以定义允许通过的流量)。CAA该开始工作了。
2)网络一旦连通,则CAA开始送SWISS discovery packets 给Default gateway。
3)CAS的Swiss 端口一直在监听,一旦收到CAA发过来的信息,它马上会给一个Feedback。
4)CAS回送的信息同时会促使CAA弹出 Login 窗口。用户名和passwrd将被NAC server 转发到CAM。
如果CAS通过了authentication 则开始进行Posture assessment。当Posture 失败时,CAM会把Client放入Temporary 角色,这些工作都是在CAM上来定义,由CAS来执行。Client升级的traffic会通过CAS到达Trast一边,这些过程其实流量又向之前一样在CAS上被改过VLAN ID.因此,如果你出不来结果,可能是CAM配置问题。
如果用户身份认证通过,则进入Posture检测状态,注意这里Client身份可以由CAM完成,但建议使用RADIUS等server来做。到底检测Client上的那些posture也是在CAM上定义的。我们可以根据Client的不同角色来定义检测什么。
CAM 首先通过CAS告诉CAA要检测哪些内容,CAA负责收集Client上的信息。
CAA收集Client上的信息然后通过CAS送给CAM。
CAM会把CAA发过来的信息与已知的病毒版本、主机patch信息进行比较,如果不match,则CAM指引Client 上的CAA弹出修复对话框,该对话框中会告诉用户发现的问题,如何修复。
这个时候,CAM会把Client的角色从Unauthenticated 移到Temporary。
所有的update 信息要在这里通过CAS,Traffic通过CAS时VLAN ID被修改再次上演。
其实二层的OOB配置还是比较简单的,三层的OOB比较复杂一点,中间链路需要做PBR或者ACC-LIST