2016-04-20 143 views
-1

我想將freeRADIUS服務器配置爲企業WLAN測試的認證服務器。我是freeRADIUS服務器配置的新手。請給我一步一步或任何鏈接,安裝和配置802.1x的freeRADIUS服務器配置

感謝, Devaa

回答

0

這個問題是如此廣泛。這真的取決於你想要做什麼,你的認證數據(例如用戶/密碼)的存儲位置,你將要使用的EAP方法的類型等。

但是,默認的FreeRADIUS配置將工作得很好對於大多數測試只需要很少的更改

首先編輯raddb/users文件並在頂部添加一個新用戶。形式應該像

username Cleartext-Password := "password" 

然後你可以使用radtesteapol_test檢查,看看這是工作。

當它工作時,您可以編輯clients.conf文件來添加您的無線AP或控制器。

然後,您應該能夠從無線網絡進行連接。

但是,這可能相當複雜,並且沿途出現很多問題,所以不要氣餒,如果它不是第一次工作。

總是測試時運行服務器時調試(radiusd -X)並讀取所有輸出。它會告訴你事情失敗的地方。

關於FreeRADIUS wiki有很多信息,例如從Basic configuration HOWTO開始。 Alan Dekok's page也有很多很好的教程建議。請注意,對於無線,您需要配置EAP。

+0

謝謝你的回答。 我帶來了免費的半徑服務器。它說準備好處理請求。 然後如何使用任何EAP方法進行連接。現在我希望我的請求者使用WPA2-企業安全將其連接到我的freeradius服務器。 請幫我連接我的請求者到radius服務器 – devaa

1

首先我們需要一個地方工作,所以我創建一個目錄:

mkdir /usr/src/freeradius && cd /usr/src/freeradius 

接下來,我們需要獲取我們的源代碼,並得到任何相關性,所以更新你的源代碼,並輸入以下命令:

apt-get update 
apt-get build-dep freeradius 
apt-get install libssl-dev fakeroot 
apt-get source freeradius 

這應該已經爲我們下載了FreeRADIUS源代碼,所以現在我們需要做一些改變,告訴我們的編譯器使用我們將要使用的EAP模塊來構建它。首先編輯/usr/src/freeradius/freeradius-1.1.3/debian/control並從Build-Conflicts刪除libssl-dev:並將其添加到Build-Depends: line的末尾。你的文件應該是這樣的:

Build-Depends: debhelper (>= 5), libltdl3-dev, libpam0g-dev, libmysqlclient15-dev | libmysqlclient-dev, libgdbm-dev, libldap2-dev, libsasl2-dev, libiodbc2-dev, libkrb5-dev, snmp, autotools-dev, dpatch (>= 2), libperl-dev, libtool, dpkg-dev (>= 1.13.19), libssl-dev 
Build-Conflicts: 

接下來,您將需要添加的描述您的EAP模塊,所以輸入以下在文件的結尾:

Package: freeradius-eaptls 
Architecture: any 
Depends: freeradius (= ${binary:Version}), ${shlibs:Depends} 
Description: eap-tls module for FreeRADIUS server 
Debian will not provide a binary version of the rlm_eap_tls.so library. This 
module is required if you want to use EAP/TLS authentication, commonly used 
for WiFi access points. 

Package: freeradius-eappeap 
Architecture: any 
Depends: freeradius (= ${binary:Version}), ${shlibs:Depends} 
Description: eap-peap module for FreeRADIUS server 
Debian will not provide a binary version of the rlm_eap_peap.so library. This 
module is required if you want to use EAP/PEAP authentication, commonly used 
for WiFi access points. 

保存並退出該文件。

接下來我們將編輯/usr/src/freeradius/freeradius-1.1.3/debian/rules。查找並評論我們的「buildssl =」和「moduleslist = - 」行,並添加以下行:

buildssl=–without-rlm_otp –without-rlm_sql_postgresql –without-snmp 
modulelist=krb5 ldap sql_mysql sql_iodbc eap_peap eap_tls 

保存並退出。

現在,輸入以下命令:

echo 「usr/lib/freeradius/rlm_eap_tls*.so」 >/usr/src/freeradius/freeradius-1.1.3/debian/freeradius-eaptls.install 
echo 「usr/lib/freeradius/rlm_eap_peap*.so」 > /usr/src/freeradius/freeradius-1.1.3/debian/freeradius-eappeap.install 

接下來讓我們創建/usr/src/freeradius/freeradius-1.1.3/debian/freeradius-eaptls.postinst並輸入以下內容:

#! /bin/sh 

set -e 

case "$1" in 
configure) 
     if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then 
     invoke-rc.d freeradius restart 
     else 
     /etc/init.d/freeradius restart 
     fi 
     ;; 
abort-upgrade) 
     ;; 
abort-remove) 
     ;; 
abort-deconfigure) 
     ;; 
esac 

#DEBHELPER# 

現在我們將創建/usr/src/freeradius/freeradius-1.1.3/debian/freeradius-eappeap.postinst並添加以下代碼行:

#! /bin/sh 

set -e 

case "$1" in 
configure) 
     if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then 
     invoke-rc.d freeradius reload 
     else 
     /etc/init.d/freeradius reload 
     fi 
     ;; 
abort-upgrade) 
     ;; 
abort-remove) 
     ;; 
abort-deconfigure) 
     ;; 
esac 

#DEBHELPER# 

現在困難的部分完成了樂t的編譯我們的deb包。輸入以下命令:

cd /usr/src/freeradius/freeradius-1.1.3/ 
dpkg-buildpackage -rfakeroot -uc -us 

如果一切順利的話,你現在應該有幾個.deb軟件包的/usr/src/freradius,讓我們通過輸入以下內容進行安裝:

dpkg -i freeradius_1.1.3-3_i386.deb 
dpkg -i freeradius-eaptls_1.1.3-3_i386.deb 
dpkg -i freeradius-eappeap_1.1.3-3_i386.deb 

檢查,看是否FreeRADIUS的編譯和問題正確安裝下面的命令:

ps aux | grep freeradius 

And you should see something similar to this: 

freerad 29998 0.0 0.8 44620 2224 ? Ssl 00:55 0:00 /usr/sbin/freeradius 

如果在調試模式下無法啓動FreeRADIUS的爲根,尋找任何線索,爲什麼事情重新工作不正常:

freeradius –X 

還要檢查/usr/lib/freeradius並確保rlm_eap_peap-1.1.3.sorlm_eap_tls-1.1.3.so模塊存在。

現在配置FreeRADIUS的

首先,我們將編輯/etc/freeradius/radiusd.conf

注:當編輯配置文件是確保每一個打開的括號({)有一個對應的結束括號(}),或者你將打破FreeRADIUS!

找到MSCHAP節模塊下,並用以下參數進行配置:

mschap { 
       authtype = MS-CHAP 
       use_mppe = yes 
       require_encryption = yes 
       require_strong = yes 
} 

下一頁驗證授權節包括以下參數:

preprocess 
mschap 
suffix 
eap 
files 

現在驗證身份驗證的節像這樣配置:

authenticate { 
    # MSCHAP authentication. 
    Auth-Type MS-CHAP { 
mschap 
} 
# Allow EAP authentication. 
     eap 
} 

現在我們必須添加一個客戶端到clients.conf。客戶端是指接入點(AP)或無線控制器等認證器。在這個例子中,我們將使用我的Juniper SSG5的地址192.168.44.129。以下節添加到clients.conf

client 192.168.44.129 { 
    secret = test123 
    shortname = Juniper 
} 

下一步,我們將配置我們的服務器通過編輯/etc/freeradius/eap.conf支持PEAP。

首先改變在EAP節的default_eap_type看起來像這樣:

default_eap_type = peap 

由於PEAP需要支持我們的例子證明取消對TLS節以及下面的參數。

tls { 
private_key_password = whatever 
private_key_file = ${raddbdir}/certs/cert-srv.pem 
certificate_file = ${raddbdir}/certs/cert-srv.pem 
CA_file = ${raddbdir}/certs/demoCA/cacert.pem 
dh_file = ${raddbdir}/certs/dh 
random_file = ${raddbdir}/certs/random 
} 

下找到並取消PEAP節及以下參數:

default_eap_type = mschapv2 

現在在/etc/freeradius/users文件中添加一個測試用戶,所以我們可以測試系統。添加以下內容:

「tobias」 User-Password == 「password123」 

Restart FreeRADIUS with the following command: 

/etc/init.d/freeradius restart 

現在,如果你已經做了一切正確的,你應該能夠用下面的命令測試用戶進行身份驗證:

radtest tobias password123 localhost 0 testing123 

你應該看到:

ending Access-Request of id 170 to 127.0.0.1 port 1812 
    User-Name = "tobias" 
    User-Password = "password123" 
    NAS-IP-Address = 255.255.255.255 
    NAS-Port = 0 
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=170, length=20 

此時一切都應該起作用,儘管您必須將您的CA證書導出到您的PEAP客戶端,以便他們相信FreeRADIUS正在使用的服務器證書。我們目前使用的證書僅用於測試,不應用於生產。接下來,我將介紹如何設置您自己的認證中心(CA)並創建您自己的證書。

首先,我們需要安裝OpenSSL,因爲我們需要生成一些複雜的密碼,所以我們還會安裝PWGen密碼生成器。

apt-get install openssl pwgen 

的OpenSSL使用缺省文件,/etc/ssl/openssl.cnf,我們將備份和編輯給我們節省一些時間,當我們開始產生了證書。

cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.bak 

現在編輯/etc/ssl/openssl.cnf找到這一行:

dir =./demoCA 

,並更改爲:

dir =/etc/freeradius/eap/eapCA 

這位置是我將要創建新的CA.您可能需要查看文件的其餘部分,並將默認值編輯到您的環境中。以下是我對openssl.cnf所做的一些更改。

-countryName_default = AU 
+countryName_default = US 

-stateOrProvinceName_default = Some-State 
+stateOrProvinceName_default = Oregon 

+localityName_default = Portland 

-0.organizationName_default = Widget ltd 
+0.organizationName_default = Fat of the LAN 

現在創建和更改爲我們所有的證書和CA的會所在的目錄:

mkdir /etc/freeradius/eap && cd /etc/freeradius/eap 

我們將使用OpenSSL的一個包含腳本來生成我們的CA,但你要在我們使用它之前定製一下,所以我們會在證書目錄中複製它。

cp /usr/lib/ssl/misc/CA.pl /etc/freeradius/eap 

接下來我們要編輯CA.pl,告訴它在哪裏創建我們的CA.打開它,並更改以下行:

CATOP=./demoCA 

到:

CATOP=/etc/freeradius/eap/eapCA 

你的CA是在您的證書基礎設施的心臟,因此是保護很重要,一旦你已經生成它,以及使用強密碼。我會用pwgen生成一個隨機的25個字符的密碼。請務必記錄此密碼,因爲每次簽署證書時都需要密碼。

pwgen 25 1 
aem5xahheethohP5Woh5Eb3ph 

現在讓我們從/etc/freeradius/eap目錄中運行腳本。

cd /etc/freeradius/eap 
./CA.pl –newca 

根據您的環境回答所有問題,並使用剛剛在提示時創建的密碼。腳本結束後,您將在/etc/freeradius/eap/eapCA中擁有自己的CA.接下來我們需要爲FreeRADIUS創建服務器證書並使用我們的新CA簽名。

./CA.pl –newreq-nodes 

現在,我們應該有一個新的密鑰對,以及一個簽名請求準備發送給我們的CA.

有關兼容性的簡要說明。如果您計劃在Windows客戶端上使用任何這些證書,則需要將XP擴展添加到您生成的證書中。 xpextensions文件包含在Debian的FreeRADIUS軟件包中,我將把它包含在我們的非Debian讀者的附錄中。只需在我們的證書目錄中複製一份。

cp /usr/share/doc/freeradius/examples/xpextensions /etc/freeradius/eap 

現在讓我們使用我們的CA密鑰簽署FreeRADIUS的」證書請求,輸入CA的密碼提示時:

./CA.pl –sign (Optionally add -extensions xpserver_ext -extfile /etc/freeradius/eap/xpextensions) 

現在所有我們需要的是生成的證書,我們需要創建一些文件需要鍵入材料並告訴FreeRADIUS使用新的證書。要創建DH和隨機文件,發出以下命令:

openssl dhparam -check -text -5 512 -out dh 
dd if=/dev/urandom of=random count=2 
chmod 640 random newcert.pem newkey.pem newreq.pem dh 

現在打開你的/etc/freeradius/eap.conf文件,找到TLS節,並改變以反映我們創造了新的證書。

private_key_file = /etc/freeradius/eap/newkey.pem 
certificate_file = /etc/freeradius/eap/newcert.pem 
CA_file = /etc/freeradius/eap/eapCA/cacert.pem 
dh_file = /etc/freeradius/eap/dh 
random_file = /etc/freeradius/eap/random 

雖然我們在這,取消以下行:

fragment_size = 1024 
include_length = yes 

重啓FreeRADIUS的和您的CA證書(/etc/freeradius/eap/eapCA/cacert.pem)複製到您的客戶。爲您的新的啓用了PEAP的SSID配置您的客戶端的請求者,配置您的AP使用802.1x和新的FreeRADIUS服務器,並且您很好!

如果您正在尋找有關RADIUS的更多信息,請查看本書。迄今爲止,這非常有幫助。

+0

「看看這本書」 - 是否應該遵循這個鏈接?看起來你忘了添加它。 – YakovL