Freeradius證書認證模式配置

Just4life發表於2013-06-24

作業系統: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.gzC:\dev\wpa_supplicant-0.7.3

B. VS2010開啟vs2005\wpa_supplicant.sln,編譯即可

C.編譯過程中間可能會遇到以下問題

-         OpenSSL的巨集定義和VSwincrypt.h的巨集定義衝突,需要按上述方法取消巨集定義。

-         wpa_supplicant-2.0Windows下編譯有很多問題,用0.7.3版可以編譯。

-         VS2005在編譯時會提示“除錯資訊損壞,請重新編譯模組”,經查詢是VS2005自身的bughttp://support.microsoft.com/kb/974193/zh-cn),改用VS2008可編譯。

-         將工程中需要用到libeay32MT.libssleay32MT.lib的地方,都換成libeay32.libssleay32.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,請各位自行下載

 

相關文章