天天看點

Freeradius證書認證模式配置

作業系統: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

#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,請各位自行下載下傳