[email][email protected][/email]
在
Intel 2007年推出
Intel AMT(
iAMT)
2.5和
3.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的角色,寻求被
Authenticator或
Authentication Server认证;
OS没有正常运行或关机状态,
iAMT将承当
Supplicant的角色。关于
802.1x的更详细的标准,大家可以去
IEEE的网站上下载。
我在自己实验室建立一个小型的测试环境用来测试
iAMT有线和有线接口上的
802.1x配置,测试环境包括:一台
Cisco 2960 Catalyst交换机,一台
Linksys WRT300N的无线路由器,一台装有
Windows Server 2003企业版的
PC,一台支持
iAMT2.5的和一台支持
iAMT3.0的
vPro平台,
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
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
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
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
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”链接,保存你的根证书。拷贝刚保存的证书到
iAMT的
Windows系统,双击并安装这个证书,然后你在
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使用(这个时候
iAMT的
IP地址是监控
Windows DHCP流量得到的),
iAMT要在
Windows没有正常运行的时候也可以通过
802.1x认证,则需要为其设置类似于
Windows的
802.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认证参数以后,接下来当然是我们需要验证我们的参数设置是否正确。首先,我们先校验
Windows的
802.1x参数是否可以正常工作,以此来保证我们的网络设备和
RADIUS Server是正常的。
使用网络线将
iAMT有线端口和交换机支持
802.1x认证的端口连接起来。开始时候,交换机端口颜色显示是橘×××的,表示认证正在进行中,如果认证通过后以后,颜色显示将变成绿色。如果端口颜色一直是橘×××,则你的
Windows配置、交换机配置和
RADIUS Server配置都右可能有问题。但你碰到这样的问题以后,我推荐使用抓包工具进行网络数据包分析,比如
Ethereal工具。图
Fig-6显示了通过抓包工具看到的成功完成整个
802.1x认证的网络流量,同样你可以在
RADIUS Server的
Windows日志的系统部分看到相关日志信息,图
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证书,在
Windows和
iAMT系统都需要安装。
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.