本文主要介绍802.1x EAP-TLS认证的测试方法,指导测试。
1. 测试环境介绍
组网主要有客户端、交换机、认证服务器组成。进行802.1x EAP-TLS认证时需要IPC、服务器分别存储CA证书、设备证书、私钥,通过交换证书实现身份验证。
2. 证书的生成
证书一般使用openssl生成,这里在ubuntu上演示证书的生成。
2.1 CA证书的生成
CA证书一般是由权威的认证机构发出,用来验证该机构签名的证书,持有CA证书的设备可以验证对端的证书是否由自己信任的机构颁发的。在我们内部使用证书时,我们可以自己充当CA认证机构,管理私钥和CA证书,使用他们签名服务器、客户端证书。
openssl req -new -x509 -nodes -newkey rsa:4096 -keyout ca_key.pem -out rootca.pem -days 3650 -subj "/C=CN/ST=GD/L=SZ/O=TVT/CN=CA"
- ca_key.pem 为生成的CA私钥
- rootca.pem 为生成的CA证书
2.2 服务器证书的生成
- 使用openssl生成私钥
server_key.pem
、证书请求文件server_csr.pem
openssl req -nodes -new -newkey rsa:4096 -keyout server-key.pem -out server_csr.pem -subj "/C=CN/ST=GD/L=SZ/O=TVT/CN=server"
- 使用证书请求文件
server_csr.pem
、CA私钥、CA公钥生成服务器证书
openssl x509 -req -in server_csr.pem -CA rootca.pem -CAkey ca_key.pem -set_serial 01 -out server.pem -days 3650
2.3 客户端证书的生成
- 生成私钥
openssl req -nodes -new -newkey rsa:4096 -keyout client-key.pem -out client_csr.pem -subj "/C=CN/ST=GD/L=SZ/O=TVT/CN=client"
- 生成证书
openssl x509 -req -in client_csr.pem -CA rootca.pem -CAkey ca_key.pem -set_serial 01 -out client.pem -days 3650
- 将证书、私钥放进一个文件(写文档时TVT证书上传用一个问题,文件由证书+私钥组成)
cat client.pem client-key.pem > client_cert_key.pem
3. 工具介绍
Radius服务器普遍由网络解决方案供应商提供,也有像WinRadius、TekRadius这样的桌面版本,但试用版均不支持EAP-TLS认证方式。免费的开源项目有freeRadius,这里使用freeRadius编译的windows版本FreeRADIUS-server-2.2.0-x86,下载后可双击安装。
3.1 FreeRADIUS配置
- 修改默认认证方式
打开安装目录FreeRADIUS\etc\raddb\eap.conf
,修改default_eap_type
配置
default_eap_type = tls
- 默认支持MD5,这里修改为默认使用TLS认证
- 修改服务器IP
打开安装目录FreeRADIUS\etc\raddb\clients.conf
,根据电脑环境修改添加下面的内容
client 192.168.1.21/8 { #服务器地址/子网掩码为255.0.0.0
require_message_authenticator = yes #是否认证信息
secret = radius # 交换机与radius服务器间的通信密码key
shortname = radius # 域名,可以随便写
}
- 将
RootCA.pem
、server.pem
、server-key.pem
放在FreeRADIUS\etc\raddb\certs
目录下。
4. 配置IPC
4.1 安装证书
5. 配置交换机
注:不同交换机可能不同
5.1 AAA配置
一般AAA配置下由RADIUS Server配置,主要配置认证服务器的IP、端口、通信密码key。
5.2 802.1x配置
配置要认证的端口,配置后可以查看端口状态来判断是否认证成功。