操作系统:Ubuntu 10.04.3 LTS + Windows 7 64bit
系统环境:
1) Ubuntu所需环境为Openssl + Freeradius
2) Windows所需环境为WpdPack + Openssl + wpa_supplicant
Ubuntu环境配置步骤:
1) 下载Openssl +Freeradius并安装
sudo apt-get install openssl
sudo apt-get install freeradius
2) 使用openssl制作根证书,radius服务器证书以及一个客户端证书
A. 制作根证书
cd etc/ssl
openssl req -newkey rsa:1024 -md5 -config ./openssl.cnf-keyout rootkey.pem -out rootreq.pem -days 3650
openssl x509 -req -in rootreq.pem -md5 -extfile./openssl.cnf -extensions v3_ca -signkey rootkey.pem -out rootcert.pem -days3650
cat rootcert.pem rootkey.pem > root.pem
制作完成之后,里面的rootcert.pem以及root.pem是我们需要的
B. 制作radius服务器证书
在etc/ssl目录下面,建立一个文件名为xpextensions的文件,并在文件中写入以下内容并保存:
[xpclient_ext]
extendedKeyUsage= 1.3.6.1.5.5.7.3.2
[xpserver_ext]
extendedKeyUsage= 1.3.6.1.5.5.7.3.1
cd etc/ssl
openssl req -newkey rsa:1024 -md5 -config ./openssl.cnf-keyout serverkey.pem -out serverreq.pem -days 365
openssl x509 -req -in serverreq.pem -md5 -extfile xpextensions-extensions xpserver_ext -CA root.pem -CAkey root.pem -CAcreateserial -outservercert.pem -days 365
cat servercert.pem serverkey.pem rootcert.pem >server.pem
制作完成之后,里面的server.pem是我们需要的
C. 制作客户端证书
cd etc/ssl
openssl req -newkey rsa:1024 -md5 -config ./openssl.cnf-keyout clientkey.pem -out clientreq.pem -days 365
openssl x509 -req -in clientreq.pem -md5 -extfilexpextensions -extensions xpclient_ext -CA root.pem -CAkey root.pem-CAcreateserial -out clientcert.pem -days 365
cat clientcert.pem clientkey.pem rootcert.pem >client.pem
制作完成之后,里面的client.pem是我们需要的
相关说明:
- 在制作证书过程中,会需要输入证书密码,测试时我使用的是12345678,如果你使用了别的,请在最后test.txt文件中,也进行相应的修改
- 在证书创建过程中,需要输入一些信息,请按照提示进行输入即可
3) 配置freeradius
A. 配置radius.conf
cd etc/freeradius
vi radius.conf
在配置文件中只修改以下两行(请确保与下面两行完全一致)
$INCLUDE eap.conf
auth = yes
B.将服务器证书server.pem(带私钥)和根CA证书rootcert.pem(不带私钥)复制到freeradius的证书目录下
sudo cp /etc/ssl/server.pem /etc/freeradius/certs/
sudo cp / etc/ssl /rootcert.pem /etc/freeradius/certs/
同时需要修改/etc/freeradius/certs/的权限,否则freeradius不能读取证书
sudo cd /etc/freeradius/certs
sudo chmod -R ug+rwx
C. 配置eap.conf
cd /etc/freeradius
sudo gedit eap.conf
关键语句如下:
eap {
default_eap_type = tls #认证类型:tls
tls {
certdir = ${confdir}/certs #服务器证书目录
cadir = ${confdir}/certs #CA证书目录
private_key_password = abcd #服务器私钥密码
private_key_file = ${certdir}/server.pem #服务器私钥文件
certificate_file = ${certdir}/server.pem #服务器证书文件
CA_file = ${cadir}/rootcert.pem #CA证书文件
}
}
D. 配置client.conf
cd /etc/freeradius
sudo gedit clients.conf
client 192.168.1.99{ #允许访问的客户端IP
secret =12345678 #预共享密钥
shortname =testing #别名
}
E. 配置user.conf
cd /etc/freeradius
testing Cleartext-Password := "password"
F. 重启freeradius服务
service freeradius stop
/usr/sbin/freeradius –Xf
G. 此步骤不是必须
如果需要修改支持的认证方式,请修改/etc/freeradius/sites-available目录下的default文件
Windows下测试环境配置:
1) 下载WinPcap
下载WpdPack_4_0_2.zip,解压到C:\dev\WpdPack
2) 编译OpenSSL
A.下载openssl-1.0.1e.tar.gz并解压
B.在\include\openssl\x509v3.h里添加
#ifdef OPENSSL_SYS_WIN32
/* Under Win32these are defined in wincrypt.h */
#undef X509_NAME
#undef X509_CERT_PAIR
#undef X509_EXTENSIONS
#endif
C.安装ActivePerl
打开VS命令提示行,进入OpenSSL路径,依次输入以下命令:
perl Configure VC-WIN32 no-asm --prefix= C:\dev\OpenSSL
ms\do_ms
nmake -f ms\ntdll.mak
nmake -f ms\ntdll.mak install
3) 编译WPA Supplicant
A.下载wpa_supplicant-0.7.3.tar.gz到C:\dev\wpa_supplicant-0.7.3
B. 用VS2010打开vs2005\wpa_supplicant.sln,编译即可
C.编译过程中间可能会遇到以下问题
- OpenSSL的宏定义和VS的wincrypt.h的宏定义冲突,需要按上述方法取消宏定义。
- wpa_supplicant-2.0在Windows下编译有很多问题,用0.7.3版可以编译。
- VS2005在编译时会提示“调试信息损坏,请重新编译模块”,经查询是VS2005自身的bug(http://support.microsoft.com/kb/974193/zh-cn),改用VS2008可编译。
- 将工程中需要用到libeay32MT.lib和ssleay32MT.lib的地方,都换成libeay32.lib和ssleay32.lib
4) 测试
A. 编写测试脚本并命名为test.txt
network={
eap=TLS
eapol_flags=3
key_mgmt=IEEE8021X
identity="testing" #在usr.conf中添加的用户
password="password" #在usr.conf中添加用户的密码
ca_cert="D:/root.pem" #根证书
client_cert="D:/client.pem" #客户端证书
private_key="D:/client.pem" #客户端证书私钥
private_key_passwd="12345678" #证书使用密码
phase2="autheap=MD5" #校验算法
}
B. 将制作出来的根证书root.pem以及client.pem拷贝至D盘根目录
C. 编写测试脚本并保存为test.bat
eapol_test.exe -c test.txt -a 192.168.1.133 -s 12345678
相关说明:
- 脚本中的192.168.1.133是指启动了freeradius服务的服务器地址
- 12345678是指共享的交互密钥,及client.conf文件中添加的密钥
D. 执行test.bat
E. 期待您能一次成功
相关资源下载:
wpa_supplicant:http://download.csdn.net/detail/wangyong0921/5639333
wpa_supplicant_runtime:http://download.csdn.net/detail/wangyong0921/5639391
WpdPack:khttp://download.csdn.net/detail/wangyong0921/5639363
openssl以及freeradius,请各位自行下载