我想将freeRADIUS服务器配置为企业WLAN测试的身份验证服务器。我是freeRADIUS服务器配置的新手。请给我一步一步或任何安装和配置链接
谢谢, Devaa
答案 0 :(得分:2)
首先我们需要一个工作场所,所以我创建了一个目录:
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
并从libssl-dev
移除Build-Conflicts
:并将其添加到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#
现在困难部分已经完成,让我们编译我们的deb包。输入以下命令:
cd /usr/src/freeradius/freeradius-1.1.3/
dpkg-buildpackage -rfakeroot -uc -us
如果一切顺利,你现在应该在/usr/src/freradius
中有几个.deb包,所以让我们输入以下内容来安装它们:
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
如果没有以root身份在调试模式下启动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!
在MODULES下找到mschap节,并使用以下参数对其进行配置:
mschap {
authtype = MS-CHAP
use_mppe = yes
require_encryption = yes
require_strong = yes
}
接下来验证授权节是否包含以下参数:
preprocess
mschap
suffix
eap
files
现在验证authenticate节是否配置如下:
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的更多信息,请查看本书。到目前为止,它非常有用。
答案 1 :(得分:0)
这个问题非常广泛。这实际上取决于您想要做什么,存储您的身份验证数据(例如用户/密码),您将使用哪种类型的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。
答案 2 :(得分:0)
这是我用于安装freeradius的分步链接。 Freeradius 3 Ubuntu tutorial
如果您仍然遇到问题,请获取安装了radius的vps