本文档介绍具有可扩展身份验证协议传输层安全(EAP-TLS)和访问控制系统(ACS)的802.1x配置,因为它们在客户端提供的客户端证书与Microsoft Active Directory(AD)中保留的相同证书之间执行二进制证书比较。 AnyConnect网络访问管理器(NAM)配置文件用于自定义。本文档中介绍了所有组件的配置,以及排除配置故障的场景。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档约定的更多信息,请参考 Cisco 技术提示约定。
Windows 7工作站安装了AnyConnect NAM,该NAM用作请求方,用EAP-TLS方法向ACS服务器进行身份验证。具有802.1x的交换机充当身份验证器。用户证书由ACS验证,策略授权根据证书中的公用名(CN)应用策略。此外,ACS从AD获取用户证书并执行与请求方提供的证书的二进制比较。
交换机具有基本配置。默认情况下,端口处于隔离区VLAN 666中。该VLAN的访问受限。用户获得授权后,端口VLAN将重新配置。
aaa authentication login default group radius local
aaa authentication dot1x default group radius
aaa authorization network default group radius
dot1x system-auth-control
interface Ethernet0/0
switchport access vlan 666
switchport mode access
ip device tracking maximum 10
duplex auto
authentication event fail action next-method
authentication order dot1x mab
authentication port-control auto
dot1x pae authenticator
end
radius-server host 192.168.10.152 auth-port 1645 acct-port 1646 key cisco
对于EAP-TLS,请求方和身份验证服务器都需要证书。此示例基于OpenSSL生成的证书。Microsoft证书颁发机构(CA)可用于简化企业网络中的部署。
openssl genrsa -des3 -out ca.key 1024
openssl req -new -key ca.key -out ca.csr
cp ca.key ca.key.org
openssl rsa -in ca.key.org -out ca.key
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
CA证书保留在ca.crt文件中,私有(和未受保护)密钥保留在ca.key文件中。
生成由思科CA签名的单个证书的脚本是:
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial
-out server.crt -days 365
openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt
-certfile ca.crt
私钥在server.key文件中,证书在server.crt文件中。pkcs12版本在server.pfx文件中。
在Windows 7中(请求方)或使用Active Directory推送用户证书时,可以遵循相同的流程。
必须将特定证书映射到AD中的特定用户。
注意:密码不重要。
注意:请勿使用名称映射(右键单击用户名)。 它用于不同的服务。
在此阶段,证书绑定到AD中的特定用户。这可以通过使用ldapsearch进行验证:
ldapsearch -h 192.168.10.101 -D "CN=Administrator,CN=Users,DC=cisco-test,DC=com" -w
Adminpass -b "DC=cisco-test,DC=com"
测试2的示例结果如下:
# test2, Users, cisco-test.com
dn: CN=test2,CN=Users,DC=cisco-test,DC=com
..................
userCertificate:: MIICuDCCAiGgAwIBAgIJAP6cPWHhMc2yMA0GCSqGSIb3DQEBBQUAMFYxCzAJ
BgNVBAYTAlBMMQwwCgYDVQQIDANNYXoxDzANBgNVBAcMBldhcnNhdzEMMAoGA1UECgwDVEFDMQwwC
gYDVQQLDANSQUMxDDAKBgNVBAMMA1RBQzAeFw0xMzAzMDYxMjUzMjdaFw0xNDAzMDYxMjUzMjdaMF
oxCzAJBgNVBAYTAlBMMQswCQYDVQQIDAJQTDEPMA0GA1UEBwwGS3Jha293MQ4wDAYDVQQKDAVDaXN
jbzENMAsGA1UECwwEQ29yZTEOMAwGA1UEAwwFdGVzdDIwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
AoGBAMFQZywrGTQKL+LeI19ovNavCFSG2zt2HGs8qGPrf/h3o4IIvU+nN6aZPdkTdsjiuCeav8HYD
aRznaK1LURt1PeGtHlcTgcGZ1MwIGptimzG+h234GmPU59k4XSVQixARCDpMH8IBR9zOSWQLXe+kR
iZpXC444eKOh6wO/+yWb4bAgMBAAGjgYkwgYYwCwYDVR0PBAQDAgTwMHcGA1UdJQRwMG4GCCsGAQU
FBwMBBggrBgEFBQcDAgYKKwYBBAGCNwoDBAYLKwYBBAGCNwoDBAEGCCsGAQUFBwMBBggrBgEFBQgC
FQYKKwYBBAGCNwoDAQYKKwYBBAGCNxQCAQYJKwYBBAGCNxUGBggrBgEFBQcDAjANBgkqhkiG9w0BA
QUFAAOBgQCuXwAgcYqLNm6gEDTWm/OWmTFjPyA5KSDB76yVqZwr11ch7eZiNSmCtH7Pn+VILagf9o
tiFl5ttk9KX6tIvbeEC4X/mQVgAB3HuJH5sL1n/k2H10XCXKfMqMGrtsZrA64tMCcCeZRoxfAO94n
PulwF4nkcnu1xO/B7x+LpcjxjhQ==
在此阶段,让用户选择在每次身份验证时使用证书非常重要。不要缓存该选项。另外,使用“username”作为未受保护的ID。请务必记住,它与ACS用于查询AD的证书的ID不同。该ID将在ACS中配置。
此示例显示手动配置文件部署。AD可用于为所有用户部署该文件。此外,ASA可用于在与VPN集成时调配配置文件。
ACS使用从请求方收到的证书中的CN字段匹配AD用户名(在本例中为test1、test2或test3)。 还启用了二进制比较。这会强制ACS从AD获取用户证书,并将其与请求方收到的相同证书进行比较。如果不匹配,则身份验证失败。
这用作RADIUS身份策略中的身份源。
VLAN2是授权配置文件,返回将用户绑定到交换机上VLAN2的RADIUS属性。
在Windows 7请求方上禁用本地802.1x服务是一种好的做法,因为使用的是AnyConnect NAM。使用配置文件,客户端可以选择特定证书。
使用test2证书时,交换机会收到成功响应和RADIUS属性。
00:02:51: %DOT1X-5-SUCCESS: Authentication successful for client
(0800.277f.5f64) on Interface Et0/0
00:02:51: %AUTHMGR-7-RESULT: Authentication result 'success' from 'dot1x'
for client (0800.277f.5f64) on Interface Et0/0
switch#
00:02:51: %EPM-6-POLICY_REQ: IP=0.0.0.0| MAC=0800.277f.5f64|
AUDITSESID=C0A80A0A00000001000215F0| AUTHTYPE=DOT1X|
EVENT=APPLY
switch#show authentication sessions interface e0/0
Interface: Ethernet0/0
MAC Address: 0800.277f.5f64
IP Address: Unknown
User-Name: test2
Status: Authz Success
Domain: DATA
Oper host mode: single-host
Oper control dir: both
Authorized By: Authentication Server
Vlan Policy: 2
Session timeout: N/A
Idle timeout: N/A
Common Session ID: C0A80A0A00000001000215F0
Acct Session ID: 0x00000005
Handle: 0xE8000002
Runnable methods list:
Method State
dot1x Authc Succes
请注意,已分配VLAN 2。 可以在ACS上将其他RADIUS属性添加到该授权配置文件(例如高级访问控制列表或重新授权计时器)。
ACS上的日志如下:
可能的错误 — ACS Active Directory中出现内部错误
可能的错误 — 无法从Active Directory检索用户证书
在企业网络中,建议同时使用计算机和用户证书进行身份验证。在这种情况下,建议在具有受限VLAN的交换机上使用开放式802.1x模式。在802.1x的计算机重新启动后,将启动第一个身份验证会话并使用AD计算机证书进行身份验证。然后,在用户提供凭证并登录域后,使用用户证书启动第二个身份验证会话。用户被置于正确(受信任)的VLAN中,具有完全网络访问。它与身份服务引擎(ISE)完美集成。
然后,可以从Machine Authentication和User Authentication选项卡配置单独的身份验证。
如果交换机上不允许打开802.1x模式,则在客户端策略中配置登录功能之前,可以使用802.1x模式。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
09-Apr-2013 |
初始版本 |