在Intel 2007年推出Intel AMTiAMT2.53.0版本中,iAMT开始支持802.1x认证方式,同时也支持Cisco NAC认证方式,支持iAMT的机器从此就可以无缝的接入到需要802.1x认证或Cisco NAC的网络了。下一代的iAMT版本中还会增加对Microsoft NAP的支持,同样是一个基于802.1x的认证方案。当iAMT通过有线接口或无线接口接入到需要802.1x认证的网络设备时,iAMT本身将作为一个Supplicant,去寻求被Authenticator(比如网络交换机或无线接入点)或认证服务器(比如Windows RADIUS Server)认证。如果是OS正常运行起来了,OS将会承担起Supplicant的角色,寻求被AuthenticatorAuthentication Server认证;OS没有正常运行或关机状态,iAMT将承当Supplicant的角色。关于802.1x的更详细的标准,大家可以去IEEE的网站上下载。
        我在自己实验室建立一个小型的测试环境用来测试iAMT有线和有线接口上的802.1x配置,测试环境包括:一台Cisco 2960 Catalyst交换机,一台Linksys WRT300N的无线路由器,一台装有Windows Server 2003企业版的PC,一台支持iAMT2.5的和一台支持iAMT3.0vPro平台,vPro平台安装的都是Windows XP系统。测试网络详细的网络拓扑图及IP配置可以参考Fig-1
Fig-1: Network Environment of our 802.1x experiment
 配置交换机
        我们的第一步是配置Cisco 2960交换机,让其部分端口支持802.1x 认证。在我们的实验中,我们用的是一个全新的Cisco交换机,当然其配置状态和交换机重新初始化后是一样的。下面的比较详细的配置步骤,所有的命令都是在交换机的特权模式下输入的
   1) 创建一个用户名和密码对,因为当AAA设置后,telnet登陆交换机就需要用户名和密码了。当然也可以通过别的方法设置,让交换机的登陆仍然是采用默认用户名。
    configure terminal
    username intel password P@ssw0rd      //We set username: intel and password: P@ssw0rd
    line vty 0 15    login local    end 
    2) 为指定的端口配置802.1x认证:
    configure terminal   
   
aaa new-model   
    aaa authentication dot1x default group radius
   
   
dot1x system-auth-control   
   
aaa authorization network default group radius   
   
interface fastEthernet0/20       // 802.1x认证被设置在端口20   
   
switchport mode access   
    dot1x port-control auto
   
   
end 
    3) 配置RADIUS服务器的信息 : 
   configure terminal
    radius-server host 192.168.1.13 auth-port 1812 acct-port 1813 key qwerty        // RADIUS服务器安装在192.168.1.13主机上,并且侦听在UDP 1812端口用于认证,UDP 1813端口用户审计。交换机和RADIUS服务器之间相互认证的密码是”qwerty”
    end 
    4) 保存配置,防止重启后丢失
         copy running-config startup-config 
      下面这个链接包含了我们实验中交换机的所有配置信息:链接
 配置无线路由器
        配置好交换机后,我们接下来配置无线路由器,比交换机配置简单多了,只需要通过网页的配置界面选择不同的认证模式就可以。打开无线路由器配置的网页,从顶上的菜单选择”Wireless Security”, 下面是我的配置:
     Security Mode:  PSK Enterprise
  
  Encryption:      TKIP
  
  RADIUS Server:   192.168.1.13
  
  RADIUS Port:     1812
 
  Shared Key:      qwerty 
配置RADIUS服务器
        然后我们配置Windows Server 2003作为我们的RADIUS服务器。在RADIUS服务器配置之前,必须线配置好CA服务器。在Windows Server 2003中,RADIUS服务器是有Internet Authentication Service来提供的,下面是配置的步骤:
1) 安装Internet Authentication Service:
   Control Panel --> Add or Remove Programs --> Add/Remove Windows Components --> Network Service --> Internet Authentication Service -> OK.
   2) 配置RADIUS服务器:
   打开IAS:  Control Panel --> Administration Tools --> Internet Authentication Service 
    为交换机和无线路由器增加RADIUS Clients:右键点击“RADIUS Clients”,选择“New RADIUS Client”,输入你交换机的friendly name(随便定义)和IP地址。点击“Next”按钮,选择“RADIUS Standard”作为Client-Vendor的值,然后输入共享的密钥信息,如Fig-2所示。然后为无线路由器做同样的步骤,只是IP地址不一样。
Fig-2: Add New RADIUS Client
        为交换机和无线路由器增加远程访问策略:右击“Remote Access Policies”,选择“New Remote Access Policy”,点击“Next”按钮。选择“Set up a custom policy”,然后输入策略名,点击“Next”按钮。在“Policy Conditions”标签页中,点击“Add…”按钮,然后在打开的对话框中,选择“Client-IP-Adress”,然后点击“Add…”按钮,在打开的对话框中输入交换机的IP地址,点击“OK”按钮。一个新的策略条件就加入到了“Policy Conditions”对话框中,然后点击“Next…”按钮,选择“Grant remote access permission”并点击“Next…”。在“Profile”对话框中,点击“Edit Profile …”按钮,在新打开的“Edit Dial-in Profile”对话框中,选择“Authentication”标签页,点击“EAP Methods”选项,然后点击“Add…”按钮。在新打开的“Select EAP Providers”对话框中,选择“Protected EAP(PEAP)”选项,点击“OK”。然后在“EAP Types”列表中,你可以看到新增加的“Protected EAP(PEAP)”条目,选择它,然后点击“Edit …”按钮。在“Certificate issues”对应的下拉列表中,选择一个被你的Root CA签发的证书。然后点击三次“OK”按钮,然后是“Next”按钮,最后是“Finish”按钮,完成测路的添加。在“Remote Access Policies”列表中,我们就可以看到我们刚增加的策略了。图Fig-3显示了一个远程访问策略的例子。
Fig-3: An example of remote access policy
        为无线路由器增加一个相同一个类似的远程访问策略,只是在Client-IP-Address中输入的IP地址是无线路由器的IP地址。
        对于那些可以通过RADIUS服务器进行802.1x认证的用户,我们还必须为其授予可以远程拨入的权限,见图Fig-4
Fig-4: Allow user to login RADIUS Server
 Windows XP系统配置802.1x参数
        首先,我们需要将我们使用的Root CA证书安装到Windows系统中,并倒出来存储到iAMT设备中。得到这个根证书的一个方法是:从你的浏览器中打开“http://[Your_CA_IP]/Certsrv”,点击“Download a CA certificate, certificate chain, or CRL”链接。在新打开的页面中,选择“Base 64”编码方式,然后点击“Download CA certificate”链接,保存你的根证书。拷贝刚保存的证书到iAMTWindows系统,双击并安装这个证书,然后你在Windows的信任根证书列表中就可以看到这个根证书了。
        在Windows可以从交换机需要802.1x认证的端口或需要802.1x认证的无线AP连出去之前,必须在Windows的有线和无线网卡上先设置好802.1x相关的参数。对于无线接口的设置:打开“Local Area Connection Properties”,选择“Authentication”标签页;然后从EAP Type下拉列表中,选择“Protected EAP (PEAP)”,点击“属性”按钮,在“Trusted Root Certification Authorities”列表中,选择刚安装的根证书,然后点击“OK”。
        对于无线接口的设置,我们可以直接使用Windows无线网络设定来设置它的认证属性,也可以通过Intel PROSet/Wireless工具来设定。图Fig-5显示了本测试中使用Intel无线配置工具来配置的参数。
Fig-5: A sample of  Windows wireless configuration for 802.1x authentication
 iAMT设备配置802.1x
        前面做了那么多的准备工作,接下来才是真正给iAMT设备配置802.1x参数。上面为Windows设置的802.1x参数,只是在Windows正常运行的时候被Windows使用(这个时候iAMTIP地址是监控Windows DHCP流量得到的),iAMT要在Windows没有正常运行的时候也可以通过802.1x认证,则需要为其设置类似于Windows802.1x参数。为了简便,我写了一个C/C++的例子用于配置iAMT有线和无线接口上的802.1x的参数,这个例子是基于iAMT 3.0 SDK,直接拷贝到SDK中例子目录就可以,可以从这里下载(下载)。下面的步骤展示了使用这个例子如何设置802.1x参数:
    1) 设置Trusted Root Certificate:这个可信的根证书是802.1x认证可以工作必不可少的条件之一,它会在iAMT设备收到服务器端TLS的“Server Hello”消息后使用,用于验证RADIUS Server提供的用户TLS通信的证书是合法的。这个过程对iAMT来说是必须的。下面的命令用于上传一个根证书到iAMT,并设置其为可信任的:
 Config-802.1x.exe  -t  -user  admin  -pass  [password of  admin]  http://[your iAMT IP ddress]:16992/SecurityAdministrationService 
    2) iAMT的有线接口设置802.1x Profile:
 Config-802.1x.exe  -w  -user  admin  -pass  [password of admin]  http://[your iAMT IP address]:16992/SecurityAdministrationService 
    一些提示信息会被显示,要求你输入如用户名、密码、域名、以及选择此802.1x profile所使用的可信任根证书。
     3) iAMT的无线接口设置802.1x Profile:与有线接口不同,无线接口的802.1x配置是配置在无线链接的Profile中,这个和Windows里面其实是类似的。使用下面的命令为无线设置802.1x认证参数:
 Config-802.1x.exe  -l  -user  admin  -pass  [password of admin]  http://[your iAMT IP address]:16992/SecurityAdministrationService
    同样,一些提示信息要求你输入如配置名称、SSID、用户名、密码、域名、以及选择此802.1x profile所使用的可信任根证书。
 测试和问题追踪
        在设置好所有的802.1x认证参数以后,接下来当然是我们需要验证我们的参数设置是否正确。首先,我们先校验Windows802.1x参数是否可以正常工作,以此来保证我们的网络设备和RADIUS Server是正常的。
        使用网络线将iAMT有线端口和交换机支持802.1x认证的端口连接起来。开始时候,交换机端口颜色显示是橘×××的,表示认证正在进行中,如果认证通过后以后,颜色显示将变成绿色。如果端口颜色一直是橘×××,则你的Windows配置、交换机配置和RADIUS Server配置都右可能有问题。但你碰到这样的问题以后,我推荐使用抓包工具进行网络数据包分析,比如Ethereal工具。图Fig-6显示了通过抓包工具看到的成功完成整个802.1x认证的网络流量,同样你可以在RADIUS ServerWindows日志的系统部分看到相关日志信息,图Fig-7显示的是成功认证的日志,图Fig-8显示的是一次认证失败的日志。
Fig-6 : EAP network traffic for successful 802.1x authentication
Fig-7: A success IAS event
Fig-8: A warning IAS event
        802.1x认证失败后,并且你通过抓包软件看到的EAP网络流量如图Fig-9所示,意味着问题可能是出在你的交换机或你的RADIUS服务器。你可以在RADIUS Server端抓包,如果没有看到任何EAP网络包,则问题处在交换机的802.1x配置;如果有相关EAP包,则你应该可以从Windows事件日志中看到有关IAS的警告或错误信息。依据这些日志信息,你就可以比较容易知道是哪里配置出了问题。
Fig-9: EAP network traffic of a failed 802.1x authentication
    如果你看得的EAP网络流量如图Fig-10所示,最有可能的是你没有安装正确的可信任根CA证书,在WindowsiAMT系统都需要安装。
Fig-10: EAP network traffic of another failed 802.1x authentication
      另外,要分析iAMT进行802.1x认证的网络数据包,你可以通过交换机的端口镜像的方法将端口上经过的数据镜像到其他端口,然后通过连接在上面的Windows系统来分析。
 Notes:  If you want to learn more about iAMT 802.1x configuration and how the C/C++ sample works, don’t hesitate to mail me for help.