0. 目的和前提 本文的目的是在FreeRadius服务器上配置一个测试环境,测试该服务器对于EAP认证方式的支持和工作正常。 前面的过程见《FreeRadius安装和配置-基础》 这一部分在前面的基础上,配置FreeRadius支持EAP的各种认证方式。 1、基础配置 a. 测试帐号 确认在/etc/raddb/users中已经配置了测试帐号 ufiletest Cleartext-Password := "password123" 注:这里有个让人有点哭笑不得的问题,需要将这些用户定义放在文件的最开始处,而不是最后面!!否则在后面的测试中可能会失败,提示的错误信息包括: rlm_eap_md5: Cleartext-Password is required for EAP-MD5 authentication [eap] Handler failed in EAP/md5 b. 本机在网络上client设置 在/etc/raddb/clients中添加本机的“网络地址”客户端,这里使用服务器自己的为192.168.1.184(原来的测试地址是本机localhost) client 192.168.1.184 { secret = testing123 shortname = myradserver } c. 模拟从网络上发起的测试 使用下面命令,测试客户端和用户配置,确认认证通过。 radtest ufiletest password123 127.0.0.1 1812 testing1233 radtest ufiletest password123 192.168.1.184 1812 testing1233 2. 简单EAP测试 我们可以使用最简单的EAP-MD5协议来测试服务器对EAP的支持是否正常。默认的FreeRadius不需要做其他设置即可支持EAP-MD5,但需要用另外一个工具 radeapclient(已随FreeRadius Utility安装): 编辑一个 eaptest.md5文件,内容为认证请求信息: User-Name = "ufiletest" Cleartext-Password = "password123" EAP-Code = Response EAP-Id = 210 EAP-Type-Identity = "ufiletest" Message-Authenticator = 0x00 运行下列命令载入认证信息 radeapclient -x 127.0.0.1 auth testing123 <eaptest.md5 验证成功的标准是一个Access-Accept包和EAP-code=Success提示。 3. EAP证书配置 全功能的EAP认证方式需要证书系统的支持,包括主要的三个协议:EAP-TLS,EAP-TTLS和PEAP。 首先需要三个证书文件,分别为ca.pem(根CA证书表明了可信任的证书颁发机构),server.pem(服务器证书),server.key(服务器公钥),这三个文件在FreeRadius安装过程中已经生成,并保留在/etc/raddb/certs目录下(注,他们是自签名的测试用证书,不建议在实际应用环境中使用)。 为使这些证书发挥正常作用,需要在 /etc/raddb/eap.conf 文件中确定下列设置(其中confdir变量是在radiusd.conf中定义的): certdir = ${confdir}/certs cadir = ${confdir}/certs private_key_password = whatever private_key_file = ${certdir}/server.pem CA_file = ${cadir}/ca.pem 这些设置的正确性还可以在 radiusd -X 启动时的诊断信息中检查。 4. 高级测试工具 eapol_test eapol_test工具可能需要自己编译,在开始前需要先安装gcc工具: yum install gcc++ 否则在编译时会出错: make: cc: Command not found make: *** [config.o] Error 127 然后到下列地址下载wpa_supplicant的源代码 http://hostap.epitest.fi/wpa_supplicant/ 下载-解压-编译-运行: cd ~ wget http://hostap.epitest.fi/releases/wpa_supplicant-0.7.3.tar.gz tar xvf wpa_supplicant-0.7.3.tar.gz cd wpa_supplicant-0.7.3/wpa_supplicant cp defconfig .config make eapol_test ...... cp eapol_test /usr/local/bin 也可以在下列地址下载二进制文件(http://www.eduroam.cz/rad_eap_test/eapol_test/ ) wget http://www.eduroam.cz/rad_eap_test/eapol_test/eapol_test 为了清楚期间,我们编辑一个配置文件作为该测试工具的EAP参数输入,来分别测试各种EAP功能的实现,命令为: eapol_test -c <测试文件> -a 127.0.0.1 -p 1812 -s testing123 -r 1 5. EAP高级测试(PEAP) 编辑一个测试用文件 eaptest.peap,包含下列请求信息: network={
eap=PEAP
eapol_flags=0
key_mgmt=IEEE8021X
identity="ufiletest"
password="password123"
ca_cert="/etc/raddb/certs/ca.pem"
phase2="auth=MSCHAPV2"
anonymous_identity="anonymous"
} 运行测试命令: eapol_test -c eaptest.peap -a 127.0.0.1 -p 1812 -s testing123 -r 1 语法为 eapol_test -c {请求信息文件} -a {认证服务器地址} -p {端口} -s {共享密钥} -r 1 如果成功,将在最后一行看到 SUCCESS,否则为FALLURE 6. EAP高级测试(TLS) 编辑一个测试用文件 eaptest.tls,包含下列请求信息: network={ eap=TLS eapol_flags=0 key_mgmt=IEEE8021X identity="ufiletest" password="password123" ca_cert="/etc/raddb/certs/ca.pem" client_cert="/etc/raddb/certs/server.pem" private_key="/etc/raddb/certs/server.key" private_key_passwd="whatever" }
6. EAP高级测试(TTLS)
network={
eap=TTLS
eapol_flags=0
key_mgmt=IEEE8021X
identity="ufiletest"
password="password123"
anonymous_identity="anonymous"
ca_cert="/etc/raddb/certs/ca.pem"
phase2="auth=MSCHAPV2"
} 注:两者的区别在于第二阶段的密码验证方式不同(MD5和MSCHAPv2)。 如果上述测试都能够通过,则证明RADUIS服务器为这些验证方式都做好了准备。 6. 一些相关名词解释和总结 PAP(Password Authentication Protocol 密码验证协议) 最基础的身份验证,直接使用明文传送用户名和密码信息,安全性较低。 CHAP(Challenge-Handshake Authentication Protocol 挑战-握手验证协议) 其特点是使用哈希来处理密码,并使用一个随机生成的信息来维持会话,提高了安全性。 MS-CHAP和MS-CHAPv2 是CHAP的微软实现方式,但也是国际标准协议。在CHAP基础上提供了更多特性和安全性。 EAP(Extensible Authentication Protocol 可扩展身份验证协议): 其实它是一个身份验证的标准框架,它可以和其他算法或者身份验证协议组合起来,提供一个灵活的,可支持多种验证方法,能提供更高安全性的验证机制。 EAP-MD5 使用MD5算法的EAP协议。是基本的最简单的EAP协议实现,这一协议的实现不需要证书体系。 EAP-TLS(EAP Trnsport Level Security EAP传输层安全协议) 大体上是SSL的升级版本,使用PKI来保护通讯,是IETF的开放标准,具有较好的兼容性。 EAP-TTLS(EAP-Tunneled Transport Layer Security EAP隧道传输层安全协议) IETF的开放标准草案,提供非常优秀的安全性。而且不需要客户端认证协议。 PEAP(Protected EAP 保护性EAP) 和EAP-TTLS类似,使用一个加密和认证过的传输层安全来保护EAP,需要PKI,但只需要服务器端。有两个实现PEAP-MSCHAP和PEAP-GTC。 LEAP(Lightweight EAP 轻量级EAP) 基本上是Cisco的私有协议实现。 EAP-SIM,EAP-AKA....其他较少应用的EAP 7. 相关常见问题 - 各种证书的位置(CA、服务器、客户端) - 共享密钥 - 客户端配置(client.conf) - 各种验证相关功能开启 |
Sunday, August 14, 2011
FreeRadius-EAP配置和测试
Subscribe to:
Post Comments (Atom)
Great and that i have a super proposal: When To Renovate House exterior makeover house
ReplyDelete