我想將freeRADIUS服務器配置爲企業WLAN測試的認證服務器。我是freeRADIUS服務器配置的新手。請給我一步一步或任何鏈接,安裝和配置802.1x的freeRADIUS服務器配置
感謝, Devaa
我想將freeRADIUS服務器配置爲企業WLAN測試的認證服務器。我是freeRADIUS服務器配置的新手。請給我一步一步或任何鏈接,安裝和配置802.1x的freeRADIUS服務器配置
感謝, Devaa
這個問題是如此廣泛。這真的取決於你想要做什麼,你的認證數據(例如用戶/密碼)的存儲位置,你將要使用的EAP方法的類型等。
但是,默認的FreeRADIUS配置將工作得很好對於大多數測試只需要很少的更改
首先編輯raddb/users
文件並在頂部添加一個新用戶。形式應該像
username Cleartext-Password := "password"
然後你可以使用radtest
或eapol_test
檢查,看看這是工作。
當它工作時,您可以編輯clients.conf
文件來添加您的無線AP或控制器。
然後,您應該能夠從無線網絡進行連接。
但是,這可能相當複雜,並且沿途出現很多問題,所以不要氣餒,如果它不是第一次工作。
總是測試時運行服務器時調試(radiusd -X
)並讀取所有輸出。它會告訴你事情失敗的地方。
關於FreeRADIUS wiki有很多信息,例如從Basic configuration HOWTO開始。 Alan Dekok's page也有很多很好的教程建議。請注意,對於無線,您需要配置EAP。
首先我們需要一個地方工作,所以我創建一個目錄:
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.so
和rlm_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的更多信息,請查看本書。迄今爲止,這非常有幫助。
「看看這本書」 - 是否應該遵循這個鏈接?看起來你忘了添加它。 – YakovL
謝謝你的回答。 我帶來了免費的半徑服務器。它說準備好處理請求。 然後如何使用任何EAP方法進行連接。現在我希望我的請求者使用WPA2-企業安全將其連接到我的freeradius服務器。 請幫我連接我的請求者到radius服務器 – devaa